1

別のviewControllerからセグエを起動しようとしています: したがって、通常、セグエはTVCのセルをタップすることで起動されます。ただし、アプリを初めて起動するときは、ユーザーがいくつかの構成をセットアップする必要があります。

アプリが表示する最初のviewController(TVCでもある)からこのセグエを起動しようとしています。そこで、SettingsTVC (セグエがある場所) にパブリック メソッドを作成しました。このメソッドの実装は次のとおりです。

-(void)setStuff{

    [self performSegueWithIdentifier:@"setStuffFromSettings" sender:self];

}

最初のviewControllerで、ボタンをクリックすると次のようになります。

[self.tabBarController setSelectedIndex:4];

SettingsTVC *settings=[[SettingsTVC alloc]init];
[settings setStuff];

NSLogs によると、メソッドは正しく呼び出されますが、アプリがクラッシュして次のように通知されます。

'Receiver (<SettingsTVC: 0x812d730>) has no segue with identifier 'setStuffFromSettings''

期待しすぎたかな。別のセグエを設定することはできません。これは、物事が非常に複雑になり、viewController に複数の場所からアクセスできるようにしたくないためです (Apple もそれを好まないと思います)。

何か案は?前もって感謝します!

4

1 に答える 1

2

performSegue を呼び出している VC に接続されたその ID を持つセグエがありません。下の画像を参照してください。ビュー コントローラ間の接続には、正しい名前を付ける必要があります。

接続を確認し、名前が一致していることを確認してください。

セグエ画像

于 2012-05-23T23:49:42.300 に答える