0

我的应用程序中有一个视图控制器,在我的屏幕上我有一个用户需要点击的 UIView。当他们这样做时,我想调用另一个 viewController 的视图,并将其显示在用户的屏幕上。不幸的是,我无法显示视图。

我从中调用的 viewController 的名称称为“MainViewController”,而我希望显示其视图的 ViewController 称为“NextViewController”

这是我拨打电话的代码:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    NSLog(@"I was touched.");

    _nextView = [[NextViewController alloc] init]; //this code is not being called
    [self.view addSubview:_nextView.view];         //neither is this being called

}

其中 _nextView 是我在 MainViewController 的 .h 文件中声明的属性。

正在调用此方法,但由于某种原因,因为我能够看到日志语句打印到输出,但由于某种原因,我无法在此之后调用这些行。谁能看到我做错了什么?

提前感谢所有回复的人。

4

2 回答 2

0

你在使用导航控制器吗?还是故事板?显示另一个视图控制器的一种方法是这样的:

[self presentViewController:_nextView animated:YES completion:^{

}];

有几件事: - 如果您的 NSLog 被调用,那么您说不调用的其他两行也是如此。- 我假设你的意思是你想在屏幕上显示另一个视图控制器,而不是在第一个视图控制器上显示另一个视图控制器的视图。这是两件非常不同的事情,第二件是你不想做的。

于 2013-08-23T16:08:03.433 回答
0

如果不将该视图控制器设置为子视图控制器,则不应将另一个视图控制器的视图添加到您的视图中。如果您只想要一个视图,则在 xib 文件中设置一个并将其作为子视图添加到您的视图中。如果您想使用视图控制器,那么您应该以模态方式呈现它,并在完成后将其关闭。这种你想从用户那里收集一些信息以在你的应用程序中使用的情况,是使用模态视图控制器的合适地方。MainViewController 应该将自己设置为 NextViewController 的委托,NextViewController 应该定义一个委托协议将数据发送回 MainViewController。

要以模态方式呈现它,请执行以下操作:

_nextView = [[NextViewController alloc] initWithNibName:@"your nib name here" bundle:nil];
[self presentViewController:_nextView animated:YES completion:nil];
于 2013-08-23T16:10:05.340 回答