2015-11-17 82 views
1

我有一個基於導航的應用程序,需要密碼才能查看某些頁面。當我在控制器A我要推到密碼控制器然後推入控制器B,並從堆棧中刪除密碼控制器iOS:從導航堆棧中移除視圖控制器

所以要清楚,密碼控制器是停留在和控制器B之間控制器A,我不知道如何刪除它。

我試過兩種不同的方法,但都沒有給我正確的結果。

嘗試1:

ControllerB *contB = [self.storyboard instantiateViewControllerWithIdentifier:@"contB"]; 
[self.navigationController pushViewController:contB animated:YES]; 

[self.navigationController popViewControllerAnimated:NO]; 

嘗試2:

ControllerB *contB = [self.storyboard instantiateViewControllerWithIdentifier:@"contB"]; 

ControllerA *contA = [self.storyboard instantiateViewControllerWithIdentifier:@"contA"]; 

[UIView transitionFromView:contA.view 
        toView:contB.view 
        duration:0.65f 
        options:(UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionTransitionCrossDissolve) 
        completion:^(BOOL finished){ 
         self.view.window.rootViewController = contA; 
        }]; 

有誰知道如何可以從堆棧中除去密碼控制器每當我推控制器B密碼控制器

回答

2

使用viewControllers財產上UINavigationController,就像這樣:

self.navigationController.viewControllers = @[ contA, contB ]; 

通常情況下,要執行這條線之後,控制已傳遞給控制器​​B

這個問題有一些其他的代碼示例:Removing viewcontrollers from navigation stack

+0

謝謝,這是您提供的我使用的鏈接的答案:http://stackoverflow.com/a/10281607/3543861 –

相關問題