teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

修正

2016/04/21 17:37

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -58,4 +58,7 @@
58
58
  dismissViewControllerAnimated(true, completion: nil)
59
59
  }
60
60
  }
61
- ```
61
+ ```
62
+
63
+ コードで書いている例をStoryboardで表すと以下の様になっています。
64
+ ![image](0a4ba48a746d71b3633640a1dff47156.png)

5

修正

2016/04/21 17:37

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -1,3 +1,12 @@
1
+ > presentModalViewControllerが非推奨になっているとのことで、実現方法や検索ワードがわからず詰まっているのでお力をお貸しいただきたいです。
2
+
3
+ ```swift
4
+ // 現在は以下のメソッドで同じことができます
5
+ @available(iOS 5.0, *)
6
+ public func presentViewController(viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)?)
7
+ ```
8
+
9
+
1
10
  > アプリケーションのヘッダーはすべて、UINavigationControllerでしかつくれないのでしょうか?また、その方法が一般的なのでしょうか?
2
11
 
3
12
  UINavigationControllerは階層的な画面遷移を管理するクラスです、NavigationControllerを使用してもヘッダーは非表示にできるので自分で好きに作成することができます。

4

修正

2016/04/21 17:33

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  > アプリケーションのヘッダーはすべて、UINavigationControllerでしかつくれないのでしょうか?また、その方法が一般的なのでしょうか?
3
2
 
4
3
  UINavigationControllerは階層的な画面遷移を管理するクラスです、NavigationControllerを使用してもヘッダーは非表示にできるので自分で好きに作成することができます。
@@ -20,7 +19,7 @@
20
19
  @IBAction func openModalView(sender: UIButton) {
21
20
 
22
21
  // 遷移先のViewControllerを生成
23
- let modalViewController = NextViewController()
22
+ let modalViewController = ModalViewController()
24
23
  // NavigationControllerのrootViewに遷移先のViewを設定
25
24
  let navi = UINavigationController(rootViewController: modalViewController)
26
25
 
@@ -35,14 +34,14 @@
35
34
  }
36
35
 
37
36
  // 遷移先のViewControllre
38
- class NextViewController: UIViewController {
37
+ class ModalViewController: UIViewController {
39
38
 
40
39
  override func viewDidLoad() {
41
40
  super.viewDidLoad()
42
41
  self.view.backgroundColor = UIColor.yellowColor()
43
42
  self.title = "NextViewController"
44
43
 
45
- let closeButtonItem = UIBarButtonItem(title: "Close", style: .Plain, target: self, action: #selector(NextViewController.close))
44
+ let closeButtonItem = UIBarButtonItem(title: "Close", style: .Plain, target: self, action: #selector(ModalViewController.close))
46
45
  self.navigationItem.leftBarButtonItem = closeButtonItem
47
46
  }
48
47
 

3

修正

2016/04/21 17:29

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -1,7 +1,13 @@
1
- UINavigationControllerのPushで進んだ画面からNavigationControllerに紐付いたViewをモーダルで出したいということでしょうか?
2
1
 
3
- れでした以下書き方でいけるとおもいます。
2
+ > アプリケーションのヘッダーはすべて、UINavigationControllerでしかつくないのでしょうか?また、の方法が一般的なのしょうか?
4
3
 
4
+ UINavigationControllerは階層的な画面遷移を管理するクラスです、NavigationControllerを使用してもヘッダーは非表示にできるので自分で好きに作成することができます。
5
+ NavigationBarはカスタムもできるので、そちらに自分のデザインを当てはめるのが簡単で、一般的だと思います。
6
+
7
+ > navigationControllerのpushViewControllerからCoverVerticalのアニメーションを付けて簡単にページ遷移することはできないのでしょうか?
8
+
9
+ 以下の書き方がその例になると思います。
10
+
5
11
  ```swift
6
12
  import UIKit
7
13
 

2

修正

2016/04/21 17:24

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -19,11 +19,10 @@
19
19
  let navi = UINavigationController(rootViewController: modalViewController)
20
20
 
21
21
  // トランジションを指定したい場合は以下の行を追加
22
- navi.modalTransitionStyle = .FlipHorizontal
22
+ // navi.modalTransitionStyle = .FlipHorizontal
23
23
  presentViewController(navi, animated: true, completion: nil)
24
24
  }
25
25
 
26
-
27
26
  override func didReceiveMemoryWarning() {
28
27
  super.didReceiveMemoryWarning()
29
28
  }
@@ -37,7 +36,6 @@
37
36
  self.view.backgroundColor = UIColor.yellowColor()
38
37
  self.title = "NextViewController"
39
38
 
40
-
41
39
  let closeButtonItem = UIBarButtonItem(title: "Close", style: .Plain, target: self, action: #selector(NextViewController.close))
42
40
  self.navigationItem.leftBarButtonItem = closeButtonItem
43
41
  }

1

修正

2016/04/21 17:12

投稿

_Kentarou
_Kentarou

スコア8490

answer CHANGED
@@ -36,6 +36,14 @@
36
36
  super.viewDidLoad()
37
37
  self.view.backgroundColor = UIColor.yellowColor()
38
38
  self.title = "NextViewController"
39
+
40
+
41
+ let closeButtonItem = UIBarButtonItem(title: "Close", style: .Plain, target: self, action: #selector(NextViewController.close))
42
+ self.navigationItem.leftBarButtonItem = closeButtonItem
39
43
  }
44
+
45
+ func close() {
46
+ dismissViewControllerAnimated(true, completion: nil)
47
+ }
40
48
  }
41
49
  ```