我的应用程序中有一个视图控制器,在屏幕上有一个UIView,用户需要点击它。当用户点击它时,我想调用另一个视图控制器的视图,并在屏幕上为用户显示它。不幸的是,我在显示视图时遇到了问题。
我从中进行调用的视图控制器的名称称为“MainViewController”,而我希望显示其视图的视图控制器的名称称为“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文件中声明的属性。
这个方法正在被调用,但是由于某种原因,我可以看到日志语句打印到输出,但是由于某种原因,我无法调用之后的行。我做错了什么?
2条答案
按热度按时间c3frrgcw1#
你不应该把另一个视图控制器的视图添加到你的视图中,除非那个视图控制器是一个子视图控制器。如果你只需要一个视图,那么在xib文件中设置一个视图,并把它作为子视图添加到你的视图中。如果你想使用视图控制器,那么你应该有模式地呈现它。完成后关闭它。在这种情况下,您希望从用户那里收集一些信息,以便在应用中使用,是使用模态视图控制器的适当位置。MainViewController应将自身设置为NextViewController的委托,并且NextViewController应定义委托协议以将数据发送回MainViewController。
要以模态方式呈现,请执行以下操作:
pxiryf3j2#
您使用的是导航控制器还是情节串联图板?显示另一个视图控制器的一种方法如下所示:
有几件事:- 如果你的NSLog被调用,那么你说的另外两行也会被调用。-我想你的意思是你想在屏幕上显示另一个视图控制器,而不是在第一个视图控制器上显示另一个视图控制器的视图。这是两件非常不同的事情,第二件你不会想做。