Objective c 从序列图像板获取的viewController获取null

Objective c 从序列图像板获取的viewController获取null,objective-c,storyboard,Objective C,Storyboard,我不熟悉故事板。你知道为什么会这样吗? 当我从包含视图控制器内的按钮启动“测试”时,日志显示vc1(如预期的那样) 但是,当我从另一个viewController“激发”test2时,我得到null @property (readonly, strong, nonatomic) UIViewController *vc1; - (IBAction)test:(id)sender { NSLog(@"log %@", _vc1 ); } - (void)test2 { NSLog(@"log

我不熟悉故事板。你知道为什么会这样吗? 当我从包含视图控制器内的按钮启动“测试”时,日志显示vc1(如预期的那样) 但是,当我从另一个viewController“激发”test2时,我得到null

@property (readonly, strong, nonatomic)  UIViewController *vc1;

- (IBAction)test:(id)sender {
NSLog(@"log %@", _vc1 );
}

- (void)test2 {
NSLog(@"log %@", _vc1 );
}

- (void)viewDidLoad
{
[super viewDidLoad];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
_vc1 =  [storyboard instantiateViewControllerWithIdentifier:@"test1"];
}

从您的代码来看,test2似乎在vc1中,只需像在vc2中的vc1中一样执行操作即可

您可能在调用viewDidLoad之前调用test2,这意味着在您尝试登录时未设置_vc1(nil也是,它记录为“(null)”。不。。2013-06-08 15:39:35.622 viewDidLoad 2013-06-08 15:39:37.957日志(空)viewDidLoad首先被激发。我很困惑!您的
其他viewcontroller
可能有一个与当前VC不同的实例,一个可能没有可视化加载的实例?否则,请尝试您的
viewDidLoad
视图中的代码将出现和/或
viewdidappease
该viewDidLoad方法在哪个控制器中?与test2相同的控制器?上面的UIViewController由序列图像板中的容器视图实例化。但是我在调用对象中通过InstanceViewControllerWithiIdentifier获得了这个UIViewController的实例。这当然是我的问题。谢谢。我不知道你的意思。我正在从另一个对象执行[aViewController test2],结果为空。但是,当我通过“测试”(从“aViewController”包含的UIButton启动)访问日志时,它会按预期工作。按钮(不工作)是否位于test2所在的独立UIViewController中。如果是,您如何访问其方法?我不知道你是怎么安排的。请发布更多代码或更好地解释视图控件“s”