如何确定哪个视图控制器呈现当前视图控制器? (苹果手机)

时间:2014-01-30 20:02:28

标签: ios iphone objective-c uiviewcontroller

根据控制器呈现当前视图控制器的视图,我需要使用两个呈现视图控制器中的任何一个来关闭当前视图控制器。

以下是当前视图控制器中的方法:

-(void)goBack:(id)sender {
if ([self.presentingViewController.presentingViewController isKindOfClass:[InitialViewController class]])
    [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

else {
    [self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

}

虽然不起作用。我究竟做错了什么?非常感谢你提前!

2 个答案:

答案 0 :(得分:2)

你的解雇方法没有错(尽管我之前的错误回答!)。你的逻辑是什么错。问题是这一行:

if ([self.presentingViewController.presentingViewController isKindOfClass:[InitialViewController class]])

将其更改为:

if ([self.presentingViewController isKindOfClass:[SecondViewController class])

这应该完全符合你的要求。

答案 1 :(得分:0)

如果您想获得呈现特定视图控制器的视图控制器,只需执行viewController.presentingViewController。应始终将其设置为任何视图控制器呈现当前视图控制器,这就是它的重点。因此,如果要关闭当前视图控制器,请执行以下操作:

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