Я провел обучающие программы, где передаю данные через сцены с помощью метода 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
Вы инициализируете self.chatObjectId? – MoMo
Не будет ли инициализация в методе prepareForSegue? – joe
Как вы установили свой segue между двумя viewControllers и где вы назвали -performSegueWithIdentifier :? – MoMo