2つのViewControllerがあります。ViewControllerOneにボタンが必要です。ボタンを押すと、ViewControllerTwoが表示されます。
ストーリーボードでは、両方のビューを「プレゼンティングセグエ」-プッシュモーダルと関連付けました。また、両方のビューにビューコントローラクラスがあります。
2つのViewControllerがあります。ViewControllerOneにボタンが必要です。ボタンを押すと、ViewControllerTwoが表示されます。
ストーリーボードでは、両方のビューを「プレゼンティングセグエ」-プッシュモーダルと関連付けました。また、両方のビューにビューコントローラクラスがあります。
「両方のビューを「プレゼンティングセグエ」-プッシュモーダルと関連付けました」とはどういう意味かわかりません。ナビゲーションコントローラーを使用していてプッシュセグエが必要ですか、それともモーダルセグエを実行しますか?「プッシュモーダル」は、用語の矛盾です。
だから、あなたがモーダルセグエが欲しいと想像してみましょう。したがって、最初のビューにボタンを配置し、そのボタンから2番目のビューに右クリックしてドラッグ(またはcontrolキーを押しながらクリックしてドラッグ)します。
セグエの種類を尋ねるポップアップが表示されます。「モーダル」を選択します。
これで、1から2への移行が完了しました。コードは必要ありません。
2番目のビューのボタンで最初のビューに戻る場合は、2番目のビューから最初のビューにモーダルセグエを戻すのではなく、dismissViewControllerAnimated
。これは、カスタムセグエを介して行うことも、簡単に、を呼び出すボタンを使用することもできますdismissViewControllerAnimated
。したがって、2番目のビューにボタンを追加し、エディターが「アシスタント」モードのときに(関連する.hファイルがInterface Builderの下に表示されます。を表示する方法を知りたい場合は、以下を参照してください。 hファイルをInterfaceBuilder画面と同時に)、右クリック(またはcontrolキーを押しながらクリック)して、2番目のビューのボタンから2番目のViewControllerの.hファイルまでドラッグします。
ちなみに、そこに.hファイルが表示されない場合は、[アシスタント]エディターボタンをクリックして、そこに表示されるファイルの[自動]を選択してください。
次に、何をしたいかを尋ねるポップアップが表示されます。IBAction
新しいメソッドを選択して名前を付けます。
次に、View Controllerのコードに移動し、コードを追加しdismissViewControllerAnimated
ます。
そのコードはすべて(そしてこの例では、IBActionと呼んでいますdismissTwo
)次のようになっています。
- (IBAction)dismissTwo:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
プッシュセグエをしたい場合は、さらに簡単です。まず、ナビゲーションコントローラーがまだない場合は、最初のビューを選択して追加し、[埋め込み]-[ナビゲーションコントローラー]を選択します。
これを行うと、新しいナビゲーションコントローラー(実際にはあまり操作する必要はありません)が作成され、最初のビューにナビゲーションバーが表示されます。
次に、最初のビューのボタンを右クリック(またはcontrolキーを押しながらクリック)して、2番目のビューにドラッグします。
今回は、「プッシュ」セグエを選択します。
2番目のビューにはナビゲーションコントローラーが含まれるため、これが機能したことがわかります。
ナビゲーションコントローラーには自動的に「戻る」ボタンがあるため、戻るためのボタンは必要ありません。そのため、独自のボタンを追加する必要はありません。
これがプッシュセグエを実現する方法です。