我是Xcode的新手,因此我将构建小型应用程序。我最近遇到了一个问题,我似乎无法找到。
我已经发了一个发送按钮,它将把我从ViewController2发送给ViewController。
Viewcontroller2.h
@interface ViewController2 : UIViewController {
ViewController *viewController;
}
- (IBAction)SaveData:(id)sender;
ViewController.m
- (IBAction)SaveData:(id)sender {
viewController = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
[self.view addSubview: viewController.view];
}
我已经检查了故事板中的每个连接都是正确的,但我仍然会收到此错误。
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
答案 0 :(得分:0)
我不确定究竟是什么导致错误。正如评论中所讨论的,segues是处理视图控制器之间转换的一种更简单的方法,所以除非你有一个特别好的理由不使用segues,否则我会开始学习segues(因为你无论如何都要学习新的东西)。 / p>
然而,错误可能与此有关:
[self.view addSubview: viewController.view];
当你这样做时,你似乎要做的就是拍摄视图(视觉部分)并将其添加到ViewController2
的视图中。同时,ViewController2
没有为view
设置任何控件,并且您在viewController
中编写了大量代码,这些代码毫无意义,因为您实际上从未实际使用该实例来实例化视图控制器。
如果您不打算使用segues,我上面的帖子应该替换为以下内容:
[self presentViewController:viewController animated:YES completion:nil];
这应该在viewController
为您希望传递的数据设置属性后调用。
prepareForSegue:sender:
方法来传递数据:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([[segue identifier] isEqualToString:@"segueNameHere"]) {
ViewController* viewController = [segue destinationViewController];
// now set the properties of viewController
}
}