我有2个观看次数,TableController
和WirelessController
。在TableController中我需要弹出WirelessController视图。这是我尝试过的,没有任何反应,也没有控制台输出。
WirelessController *wCon = [[WirelessController alloc] init];
[[wCon navigationController] popViewControllerAnimated:YES];
这也有同样的问题。
[self navigationController] popViewControllerAnimated:YES];
当它是基于视图的应用程序时,我是否正在使用UINavigationController?
答案 0 :(得分:0)
我认为你的意思是推,而不是流行......
WirelessController *wCon = [[WirelessController alloc] init];
[[self navigationController] pushViewControllerAnimated:YES];
Push将新项添加到堆栈顶部; pop从堆栈中删除顶部项目。
更新
从您的评论中看来......
您的第一个视图是WirelessController的一个实例。
从那里你以模态方式呈现TableController
现在你要回到无线控制器。
在这种情况下,您需要将消息发送回呈现视图控制器(wirelessController),要求它关闭它已经呈现的视图控制器(tableController)
在tableController中:
[self presentingViewController] dismissViewControllerAnimated:YES
completion:nil]];
无论发生什么事,你当然不想这样做:
WirelessController *wCon = [[WirelessController alloc] init];
此行将创建一个新对象。您想要返回现有对象。
推送和弹出 viewControllers是一种通常与导航控制器相关联的活动,它保留了一系列托管的viewControllers。在这种情况下,您将推送将新控制器添加到堆栈顶部,然后 pop 将其从堆栈中删除。在没有导航控制器的情况下,没有这样的堆栈,所以推和弹没有意义。