![](/img/trans.png)
[英]How to determine what view controller presented the current view controller? (iphone)
[英]iPhone - Removing a presented view controller
在視圖控制器上,我有一個按鈕,它將顯示另一個視圖控制器。 從第二個視圖控制器,我可以轉到其他視圖控制器,但不一定回到讓我在這里的那個。 如果是這種情況,我該如何刪除原始視圖控制器?
你的描述在這里有點不清楚。 這里可能有3種不同的情況:
在第一種情況下,您可以使用UINavigationController的方法:
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
並使用viewControllers屬性在堆棧中導航。
在第二個,如果你想將層次結構分解為一個完全另一個視圖控制器,那么只需通過以下方式執行:
[[[UIApplication sharedApplication] keyWindow].rootViewController dismissViewControllerAnimated:YES completion:nil];
[[UIApplication sharedApplication] keyWindow].rootViewController = newController;
甚至更好:在第一行的完成塊中添加第二行。
或者在第三種情況下,如果你只想做一個例外,但是否則留在導航控制器堆棧中,那么使用方法:
- (void)addChildViewController:(UIViewController *)childController
- (void)removeFromParentViewController
這取決於您實際呈現當前視圖控制器的方式。 如果它是模態的,那么
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
如果是使用導航控制器推送的:
[self.navigationController popViewControllerAnimated:YES];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.