dea*_*ter 4 iphone objective-c uiviewcontroller ios
让我们说我有两个viewcontrollers ViewControllerA,ViewControllerB当我按下按钮时,viewcontrollerA它正在推动viewControllerB.不过前推我想设置的属性viewControllerB的viewControllerA.但是nil当我检查变量时,我得到的只是值viewControllerB.我做的是;
在ViewControllerA:
VCB = [[ViewControllerB alloc]init];
[VCB setPropertyOfViewControllerB:someString];
NSLog(@"value: %@", VCB.PropertyOfViewControllerB); // Here I observe the correct value so I set successfully
Run Code Online (Sandbox Code Playgroud)
但事情是我也希望从中获得它,viewControllerB但我得到nil变量.
在ViewControllerB:
//I already defined in h file as property
NSString *PropertyOfViewControllerB;
@property(nonatomic, retain) NSString *PropertyOfViewControllerB;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试检查ViewControllerB的viewDidLoad方法中的值时
NSLog(@"value: %@", PropertyOfViewControllerB);//here I get null not the value I set at viewControllerA
Run Code Online (Sandbox Code Playgroud)
可能我想念一个我无法弄清楚的小点.任何帮助都是极好的.谢谢.
编辑:我正在使用故事板.我推送以下代码:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
lvc = [storyboard instantiateViewControllerWithIdentifier:@"mainManu"];
[self.navigationController pushViewController:lvc animated:YES];
Run Code Online (Sandbox Code Playgroud)
如果您使用VCB = [[ViewControllerB alloc]init];但通过Storyboard推送,那么VCB与Storyboard中使用的ViewController不同.试试这个:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"yourSegueName"]) {
ViewControllerB *vc = [segue destinationViewController];
[vc setPropertyOfViewControllerB:@"foo"];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |