我想知道是否有任何方式从UIViewController
返回像3-4步向后,我有一个主屏幕将导航到其他UIViewController
通过presentModalViewController
,在下一个视图,它将有一个UINavigationBar
,它将导航到4-5级的深度。我想设置一个按钮,让用户直接返回家中,而无需返回所有输入的视图。从任何UIViewcontroller返回主菜单
thx提前。
我想知道是否有任何方式从UIViewController
返回像3-4步向后,我有一个主屏幕将导航到其他UIViewController
通过presentModalViewController
,在下一个视图,它将有一个UINavigationBar
,它将导航到4-5级的深度。我想设置一个按钮,让用户直接返回家中,而无需返回所有输入的视图。从任何UIViewcontroller返回主菜单
thx提前。
让您的根级别视图控制器注册为通知的观察者,例如“POP_TO_ROOT”。当它收到这个通知时,调用一个方法来解除你的模式视图控制器(或者任何第一个在堆栈中)。
在您的视图控制器堆栈中,任何视图4或5级别都可以发布通知“POP_TO_ROOT”。
编辑:添加代码
在你的主 “屏幕” 你所拨打presentModalViewController之前,这样做:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handlePopToRoot)
name:@"POP_TO_ROOT"
object:nil];
,并添加这个方法:
- (void) handlePopToRoot {
[[NotificationCenter defaultCenter] removeObserver:self
name:@"POP_TO_ROOT"
object:nil];
[self.navigationController dismissModalViewControllerAnimated: YES];
}
然后向下深入您的视图控制器层次结构中,当您想要弹出所有方式时,您只需发布一个公告通货膨胀:
[[NSNotificationCenter defaultCenter] postNotification:@"POP_TO_ROOT" object:nil];
如果我理解你的问题正确,你是呈现导航控制器(带连接到它的根视图控制器)从你的“主视图控制器“,你希望能够回到你的”主视图控制器“。
因为您将始终有指向您的导航控制器的指针,您应该能够从任何视图控制器中调用 dismissModalViewControllerAnimated:
,并且它会将您带回到主视图控制器。
[[self.navigationController parentViewController] dismissModalViewControllerAnimated:YES]
这会让我回到一个观点,我想让它回到例如4视图。 – Scar 2012-01-13 22:06:22
我没有得到您的解决方案,您可以发布一些代码以向我清楚吗? – Scar 2012-01-13 22:25:23
感谢您的快速回复,并感谢您的代码之间,我不使用导航控制器,我只是使用[自我presentModelViewController:Viewname动画:是]; – Scar 2012-01-13 22:45:35