我已創建4個視圖的基於視圖的應用程序。通過使用導航控制器,我正在改變視圖。在我的第三個視圖中有一個按鈕。如果我點擊那個按鈕,應用程序應該來到第一個視圖(2回視圖)。如何在基於導航的應用程序中返回2個視圖
我用
[self.navigationController popViewControllerAnimated:YES];
[self.navigationController popViewControllerAnimated:YES];
這是行不通的。它只會到前一頁。
我已創建4個視圖的基於視圖的應用程序。通過使用導航控制器,我正在改變視圖。在我的第三個視圖中有一個按鈕。如果我點擊那個按鈕,應用程序應該來到第一個視圖(2回視圖)。如何在基於導航的應用程序中返回2個視圖
我用
[self.navigationController popViewControllerAnimated:YES];
[self.navigationController popViewControllerAnimated:YES];
這是行不通的。它只會到前一頁。
嘗試了這一點,並根據您的規格
-(void)goToMainCategoryView;
{
id object = nil;
for (UIViewController *viewControl in self.navigationController.viewControllers)
{
if(viewControl.view.tag == 0)
{
object = viewControl;
}
}
[self.navigationController popToViewController:object animated:YES];
}
使用
popToRootViewControllerAnimated:
去所有的方式回到頂部視圖控制器:
文檔:
彈出堆棧除了根視圖控制器上的所有視圖控制器,並更新顯示。
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
或
popToViewController:animated:
回去特定視圖控制器,提供你想要去的視圖控制器。
文檔:
入時視圖控制器,直到指定的視圖控制器是在導航堆棧的頂部。
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
參數
的viewController 你想在堆棧的頂部視圖控制器。
對不起,我已經更新了問題。請回答..... – umakanta
另一個簡單的根通過指數來選擇的UIViewController是使用做出改變:
NSArray *viewsArray = [self.navigationController viewControllers];
UIViewController *chosenView = [viewsArray objectAtIndex:1];
[self.navigationController popToViewController:chosenView animated:YES];
chosenView
然後將在第二視圖導航堆棧(位置1)。如果你有一個大堆棧,並想要一個特定的視圖。
for (UIViewController *controller in self.navigationController.viewControllers)
{
if ([controller isKindOfClass:[NeededViewController class]])
{
[self.navigationController popToViewController:controller
animated:YES];
break;
}
}
同樣的事情在迅速1.2 :: Xcode中:6.4
for controller: UIViewController in self.navigationController?.viewControllers as! [UIViewController] {
if controller.isKindOfClass(YourViewController) {
self.navigationController!.popToViewController(controller, animated: true)
}
}
謝謝,它稍作修改..... – umakanta
@umakanta:如果我的回答是幫助你然後接受或upvote我的anwer – Hiren