我是iOS開發人員和QuickDialog中的新成員。將數據從ViewControllerA傳遞到ViewControllerB(QuickDialog)
我想從ViewControllerA傳遞數據到ViewControllerB。
這是工作,但在ViewControllerB我有一個問題。
例
在ViewControllerA.m
-(void) goToViewControllerB
{
ViewControllerB *viewControllerB = [[ViewControllerB alloc]init];
// send data
viewControllerB.ownerName = @"TestData";
[self.navigationController pushViewController:viewControllerB animated:YES];
}
在ViewControllerB.h
@property (nonatomic, strong) NSString *ownerName;
在ViewControllerB.m
-(id) init
{
NSLog(@"init");
NSLog(@"ownerName : %@", _ownerName);
self = [super initWithRoot:[self createViewElement]];
return self;
}
-(void) viewDidLoad
{
[super viewDidLoad];
NSLog(@"viewDidLoad");
NSLog(@"ownerName : %@", _ownerName);
}
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"viewDidLoad");
NSLog(@"ownerName : %@", _ownerName);
}
在Method init中,我使用QuickDialog創建本頁的樣式。
在方法createViewElement我想顯示_ownerName的數據,但它是NULL。
這是本示例代碼的輸出。
>> init
>> ownerName : (null)
>> viewDidLoad
>> ownerName : TestData
>> viewAppear
>> ownerName : TestData
我想要在Method createViewElement中使用此數據。
如何解決它。
P.S.我試圖在viewDidLoad或viewWillAppear中調用方法createViewElement,但它不起作用。
如果你是新到iOS,有沒有你不使用故事板的原因? – nhgrif
在我們的項目中只使用代碼。 –
你顯然無法在數據到達之前引用數據。一個選項是將ownerName作爲參數傳遞給init。 –