如何解除视图控制器

时间:2013-02-07 12:09:36

标签: iphone xcode viewcontroller

我正在通过以下方式推动控制器:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController"     bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

一旦到了那里,我就不能再回头了

[self dismissViewControllerAnimated:YES completion:nil];

[self.navigationController popViewControllerAnimated:YES];

我应该用什么来解雇最后一个观点?

3 个答案:

答案 0 :(得分:1)

到你要解雇的地方去???

这是根视图控制器吗?它不能被“解雇”。 如果你有另一个视图控制器并且从第二个VC推送或模态显示这个VC它可以被解除

Window是基础画布,VC上面添加了VC并显示

从您的澄清中确定您有一个初始VC与联系人,您正试图从该contactVC转到下一页(DetailsVC),然后从那里解雇。

您目前正在做的是获取窗口并将您的detailVC作为根VC。这样您就无法忽略联系人VC。在detail VC方法didselectRowAtIndexpathcontactsVC的一个实例{1}}并使用导航控制器推送它。

然后您可以使用popViewControllerAnimated:

方法弹出

这是一个很好的tutorial,你可以从

开始

快乐编码:)

答案 1 :(得分:0)

您的代码不是"推动控制器"。该代码基本上是您在应用代理中可以找到的用于设置初始窗口和视图的内容。

只有在您使用pushViewController将控制器推到同一个导航控制器上之后,调用popViewController才有效。

调用dismissViewController仅在您使用presentViewController呈现视图控制器之后才能工作,这也是您无法完成的。

答案 2 :(得分:0)

我终于离开了上述技术,转而采用传统技术:

ViewController *detailViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];