2016-07-20 4 views
0

これまで私には起こったことがないので、ナットを駆動しています。これを何十回もやったことがあります。ビューコントローラ間を渡すときのヌル値

2つのView Controller間で値を渡すと、値はNULLになります。

私はprepareForSegue:方法があります:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString: @"LoginSegue"]) { 
     UITabBarController *destinationTabController = [segue destinationViewController]; 
     ViewController *destinationViewController = destinationTabController.selectedViewController; 
     NSLog(@"Logged user is %@.", loggedUser); //This prints out the user correctly 
     destinationViewController.currentUser = loggedUser; 
    } 
} 

をしかしセグエが行われたとき、私はcurrentUser値をログに記録しようとすると、それはNULLです。

アイデア、人々?

+0

'destinationViewController'を記録してみてください。 – matt

+0

うん、私はばかです。それはnullだった。これを(現在は)[destinationTabController viewController] objectAtIndex:0]に変更すると問題が解決されました。 – Ancinek

+0

:)何かがうまくいかないときは、いつでもそれを残しておいてください。 Objective-Cは、物事がゼロの時にはbarfにならないので、常にこれが原因である可能性があります。スイフトに切り替えるもう一つのすばらしい理由:あなたはそれを検討するべきです。 – matt

答えて

2

タブバーコントローラがインターフェイスにないため、何も選択されていません。したがってdestinationViewControllernilであり、そのcurrentUserを設定しようとしても何も起こりません。

関連する問題