2015-07-23 2 views
1

Я провел обучающие программы, где передаю данные через сцены с помощью метода prepareForSegue:sender:, но сейчас, когда я пытаюсь использовать переданные данные, он равен нулю. Я также использую навигационный контроллер.Проблемы с передачей данных между сценами, когда я перешел

вот .h -

#import <UIKit/UIKit.h> 

#import "TalkChatTableViewController.h" 

@interface CreateChatTableViewController : UIViewController 

@end 

вот .m

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

    if ([[segue identifier] isEqualToString:@"idSegueMyChatsToChat"]){ 
      TalkChatTableViewController *tctvc = [segue destinationViewController]; 
      tctvc.chatObjectId = @"test"; 
      NSLog(@"%@", tctvc.chatObjectId); 
      //succesfully logs out test 
      } 
} 

Когда я войти описанным выше способом, это выходит хорошо. Но затем, когда я перехожу на свой класс TalkChatTableViewController, он не выходит из системы viewDidLoad; он равен нулю.

Заголовок на который выглядит следующим образом:

#import <UIKit/UIKit.h> 
@interface TalkChatTableViewController : UITableViewController 
@property (nonatomic) NSString * chatObjectId; 
@end 

, а затем окончательно .m -

#import "TalkChatTableViewController.h" 

@implementation TalkChatTableViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSLog(@"%@", self.chatObjectId); 
    // logs null 
} 

@end 
+0

Вы инициализируете self.chatObjectId? – MoMo

+0

Не будет ли инициализация в методе prepareForSegue? – joe

+0

Как вы установили свой segue между двумя viewControllers и где вы назвали -performSegueWithIdentifier :? – MoMo

ответ

0
TalkChatTableViewController * tctvc = (TalkChatTableViewController *)[segue destinationViewController]; 

Это то, что наматывается на работу.

Смежные вопросы