web-dev-qa-db-ja.com

Xcode 4.5を使用してストーリーボードを編集するときに、新しい[終了]アイコンが何に使用されるか知っていますか?

[終了]アイコンを右クリックすると、空のウィンドウが表示されます。 Ctrlキーを押しながらIB要素または対応するソースファイルへの接続をドラッグできません。ドキュメントは愛を与えません。 nibファイルには表示されず、ストーリーボードのみに表示されます。私の推測では、それはセグエの帰結であるが、それをバックアップする新しい方法は見当たらない。誰でも?

99
rsswtmr

WWDCビデオ「セッション407-アプリでのストーリーボードの採用」には多くの情報があります。

セグエでリンクされた2つのView Controllerがあるとします。最初のView Controllerで次の終了アクションを実装します。

- (IBAction)done:(UIStoryboardSegue *)segue {
    NSLog(@"Popping back to this view controller!");
    // reset UI elements etc here
}

次に、2番目のView Controllerのストーリーボードシーンで、Ctrlキーを押しながらボタンなどのUI要素からこのView Controllerの下部にある終了アイコンにドラッグします。 done:最初のコントローラーのコードに追加したアクションは、オプションとして表示されます。これで、Ctrlキーを押しながら終了アイコンにドラッグしたボタンをアクティブにすると、最初のView Controllerに戻って元の状態が維持されます(つまり、テキスト入力などのUI要素はそのまま維持されます)。

104
Cal S

私は受け入れられた答えを追うのに苦労したので、ここに詳細があります。

View Controller Cの次の写真を参照すると、セグエパス内の任意のView Controllerに「戻る」ことができます。

enter image description here

ViewController [〜#〜] a [〜#〜]を書くことができます:

- (IBAction)done:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController [〜#〜] b [〜#〜]書くことができます:

- (IBAction)back:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController [〜#〜] c [〜#〜]あなたは"back"ボタンから緑の終了オプションへのドラッグを制御し、back:を選択しますViewController [〜#〜] c [〜#〜]あなたは"done"ボタンから緑の終了オプションへのドラッグを制御し、done:を選択します enter image description here

注:メソッドは他のView Controller上にありますが、ViewController [〜#〜] c [〜#〜]の終了時に表示されます。 コントロールのドラッグとメソッドの選択は、どのViewControllerに巻き戻すかを定義します。

218
Eric

Eric に加えて、ここでの答えは Swift での動作です:

宛先コントローラーに追加する関数は次のようになります。

@IBAction func backFromOtherController(segue: UIStoryboardSegue) {
    NSLog("I'm back from other controller!")
}
14
jboi