2015-01-11 8 views
19

アプリのテスト中にクラッシュしました。performSegueWithIdentifierに識別子のセグがありません

storyboard

私はビューコントローラのコードを持っている:以下の画像は私のストーリーボードです

@IBAction func unwindToHomeScreen(segue:UIStoryboardSegue) { 

} 

「新しい項目の追加」のビューには、「キャンセル」ボタン、I制御ドラッグを持っています上部の「Exit」アイコンとunwindToHomeScreenにリンクすると、正常に動作します。

「新しい項目の追加は、」クラスAddTableViewControllerと私は内部の書いたコードがあります。

@IBAction func save() { 
    // Execute the unwind segue and go back to the home screen 
    performSegueWithIdentifier("unwindToHomeScreen", sender: self) 
} 

I FUNCに制御されたドラッグ「保存」ボタンが、アプリがクラッシュ私はボタンをクリックしたとき

代わりにdismissViewControllerAnimated(true, completion: nil)を使用できますが、なぜperformSegueWithIdentifierが機能しないのでしょうか?

dropbox.com/s/hpybgg9x67rtqng/foodpinstatictable.zip?dl=0でコードを読んで、performSegueWithIdentifierをこの例のように練習してみましたが、私は彼女のセグの識別子を見ませんでしたが、違いは何ですか?

+0

...名前を選択プッシュクラスが行わ与えるあなたが実際にあなたのセグエの識別子を与えるかにストーリーボード?あなたが戻ってくるコントローラ内の関数の名前は識別子ではありません。 – rdelmar

+1

「キャンセル」を「終了」アイコンにドラッグして「unwindToHomeScreen」にリンクすると、ドキュメントのアウトラインに「シーン終了プレースホルダに巻き戻す」というメッセージが表示されますItem Scene "を入力してから、" unwindToHomeScreen "というIdentitierを取得します。 – Ian

答えて

45

あなたは実際にそのセグに識別子を与えていません。 unwindToHomeScreenは、あなたが呼び出せる関数です。あなたが探していることは、このようにInterface Builderで設定されているあなたのセグエ識別子、次のとおりです。

Set an identifier

この例では、私はあなたが記述のように「(Interface Builderを介して、次のビューに配線のボタンを持っていますInterface Builderの「)と私のビューコントローラ(このIBActionに配線されているボタン」プログラム」):

@IBAction func goToNextView(sender: UIButton!) { 
    self.performSegueWithIdentifier:("go", sender: self) 
} 

いずれにせよ、何が欠けていることで設定することができ、実際の識別子であり、 Interface Builderで作成されたセグの属性。

+1

詳細な回答をいただきありがとうございます。 – Ian

2

私はビューコントローラの名前を変更したため、セグを削除して再作成する必要があることがわかりました。私にとって

-1

- ビューコントローラと、その後select属性インスペクタの関係矢印をクリックして>、識別子がある

関連する問題