3

2つのViewControllerがあります。ViewControllerOneにボタンが必要です。ボタンを押すと、ViewControllerTwoが表示されます。

ストーリーボードでは、両方のビューを「プレゼンティングセグエ」-プッシュモーダルと関連付けました。また、両方のビューにビューコントローラクラスがあります。

4

2 に答える 2

9

「両方のビューを「プレゼンティングセグエ」-プッシュモーダルと関連付けました」とはどういう意味かわかりません。ナビゲーションコントローラーを使用していてプッシュセグエが必要ですか、それともモーダルセグエを実行しますか?「プッシュモーダル」は、用語の矛盾です。

だから、あなたがモーダルセグエが欲しいと想像してみましょう。したがって、最初のビューにボタンを配置し、そのボタンから2番目のビューに右クリックしてドラッグ(またはcontrolキーを押しながらクリックしてドラッグ)します。

segue1を作成する

セグエの種類を尋ねるポップアップが表示されます。「モーダル」を選択します。

セグ2を作成する

これで、1から2への移行が完了しました。コードは必要ありません。

2番目のビューのボタンで最初のビューに戻る場合は、2番目のビューから最初のビューにモーダルセグエを戻すのではなくdismissViewControllerAnimated。これは、カスタムセグエを介して行うことも、簡単に、を呼び出すボタンを使用することもできますdismissViewControllerAnimated。したがって、2番目のビューにボタンを追加し、エディターが「アシスタント」モードのときに(関連する.hファイルがInterface Builderの下に表示されます。を表示する方法を知りたい場合は、以下を参照してください。 hファイルをInterfaceBuilder画面と同時に)、右クリック(またはcontrolキーを押しながらクリック)して、2番目のビューのボタンから2番目のViewControllerの.hファイルまでドラッグします。

却下1

ちなみに、そこに.hファイルが表示されない場合は、[アシスタント]エディターボタンをクリックして、そこに表示されるファイルの[自動]を選択してください。

アシスタントエディター

次に、何をしたいかを尋ねるポップアップが表示されます。IBAction新しいメソッドを選択して名前を付けます。

却下2

次に、View Controllerのコードに移動し、コードを追加しdismissViewControllerAnimatedます。

ここに画像の説明を入力してください

そのコードはすべて(そしてこの例では、IBActionと呼んでいますdismissTwo)次のようになっています。

- (IBAction)dismissTwo:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}
于 2012-08-07T00:54:58.937 に答える
5

プッシュセグエをしたい場合は、さらに簡単です。まず、ナビゲーションコントローラーがまだない場合は、最初のビューを選択して追加し、[埋め込み]-[ナビゲーションコントローラー]を選択します。

プッシュ1

これを行うと、新しいナビゲーションコントローラー(実際にはあまり操作する必要はありません)が作成され、最初のビューにナビゲーションバーが表示されます。

プッシュ2

次に、最初のビューのボタンを右クリック(またはcontrolキーを押しながらクリック)して、2番目のビューにドラッグします。

プッシュ3

今回は、「プッシュ」セグエを選択します。

プッシュ4

2番目のビューにはナビゲーションコントローラーが含まれるため、これが機能したことがわかります。

ここに画像の説明を入力してください

ナビゲーションコントローラーには自動的に「戻る」ボタンがあるため、戻るためのボタンは必要ありません。そのため、独自のボタンを追加する必要はありません。

これがプッシュセグエを実現する方法です。

于 2012-08-07T01:20:07.197 に答える