MainViewController
中,我以编程方式从xib打开一个视图。这个
xib视图包含UIButton
。 xib成功打开。 UIButton
我要移动FeedBackViewController
这是我用来点击FeedBackViewController
UIButton
的代码
FeedBackViewController *view=[self.storyboad instantiateViewControllerWithIdentifier:@"FeedBackView"];
[self presentViewController:view animated:YES completion:nil];
但它崩溃了,我收到以下消息:
由于未捕获的异常'NSInvalidARgumentException'而终止应用程序,原因:'应用程序试图在目标FutureOrderViewController上显示一个nil模态视图控制器:0x199a4a30。
答案 0 :(得分:4)
检查这些事情
检查viewcontroller的标识符,如果它与您在storyboard中提到的相同
确保您的视图对象不是nil。在该行上设置断点,在底部的调试区域上查看对象是否为nil。如果它是零则问题在于故事板连接
如果你的当前viewcontroller没有从storyboard启动,那么得到这样的storyboard对象:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController * feedbackVC = [storyboard instantiateViewControllerWithIdentifier:@"FeedBackView"] ;
[self presentViewController:feedbackVC animated:YES completion:nil];
答案 1 :(得分:0)
每当你想按照你提到的方式加载VC时,你需要做两件事。
事情1:具体的故事板ID。你会发现:
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@“Your_Storyboard_Id”bundle:nil];
事2:
您需要View Controller ID。只需单击要从故事板中查看的View Controller,然后在那里提供一个合适的名称。
然后调用它:
UIViewController * yourVC = [storyboard
instantiateViewControllerWithIdentifier:@"YourVC_ID"] ;
如果你想以模态方式呈现它,你已经这样做了。 :)
[self presentViewController:yourVC animated:YES completion:nil];
答案 2 :(得分:0)
试试这个
UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
FeedBackViewController * feedbackVC = [story instantiateViewControllerWithIdentifier:@"FeedBackView"] ;
[self presentViewController:feedbackVC animated:YES completion:nil];
FeedBackView 是FeedBackViewController的故事板ID。