0

ここで単純なものが欠けているに違いないと思いますが、それが何であるかわかりません。

同じビューコントローラーから複数のセグエをサポートする必要があるため、当然、セグエ識別子を使用したいと思います。私のコードは何らかの理由で機能していません。例を挙げましょう。

このコードは次のとおりです。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    NSString *segueID = @"createBuildSegue";

    if (segue.identifier == @"createBuildSegue") {
        UINavigationController *navController = segue.destinationViewController;
        CreateBuildTableViewController *rootController = [navController.viewControllers objectAtIndex:0];
        [rootController setOptionsDictionary:[[DataManager sharedDataManager]optionsDictionary]];

        NSLog(@"Worked");
    }
    NSLog(@"segue identifier = %@", segue.identifier);
    NSLog(@"segueID = %@", segueID);

}

コンソールからの出力は次のとおりです。

2012-06-17 22:32:06.921 RubiconMobile[26943:f803] segue identifier = createBuildSegue
2012-06-17 22:32:06.922 RubiconMobile[26943:f803] segueID = createBuildSegue

これは機能せず、その理由がわかりません。本当に私を悩ませます

何か案は?

ありがとう!

4

1 に答える 1

5

isEqualToString:ではなくを使用して文字列を比較します==。後者はポインタの等価性をチェックし、前者は文字列が実際に同じ文字列かどうかを確認します。

if ([segue.identifier isEqualToString: @"createBuildSegue"])
于 2012-06-18T05:44:06.583 に答える