0

我有 2 个视图,TableController并且WirelessController. 在 TableController 中,我需要弹出 WirelessController 视图。这是我尝试过的,没有任何反应,也没有控制台输出。

WirelessController *wCon = [[WirelessController alloc] init];
[[wCon navigationController] popViewControllerAnimated:YES];

这也有同样的问题。

[self navigationController] popViewControllerAnimated:YES];

当它是基于视图的应用程序时,我正在使用 UINavigationController 吗?

4

1 回答 1

0

我认为你的意思是推动,而不是流行......

WirelessController *wCon = [[WirelessController alloc] init];

[[self navigationController] pushViewControllerAnimated:YES];

Push 将一个新项添加到栈顶;pop 从堆栈中删除顶部项目。

更新

从你的评论看来...

  • 您的第一个视图是 WirelessController 的一个实例。

  • 从那里你以模态方式呈现一个 TableController

  • 现在你想回到你的无线控制器。

在这种情况下,您需要向呈现视图控制器 (wirelessController) 发送一条消息,要求它关闭它呈现的视图控制器(tableController)

在表控制器中:

  [self presentingViewController] dismissViewControllerAnimated:YES 
                                                     completion:nil]];

无论发生什么,您当然不想这样做:

WirelessController *wCon = [[WirelessController alloc] init];

此行将创建一个新对象。您想返回到现有对象。

推送弹出视图控制器是一个通常与导航控制器相关联的活动,导航控制器保留了一组托管视图控制器。在这种情况下,您将push以将新控制器添加到堆栈顶部,然后pop以将其从堆栈中删除。在没有导航控制器的情况下,没有这样的堆栈,所以 push 和 pop 没有意义。

于 2013-01-24T01:08:42.147 回答