2013-10-17 62 views
-2

我有一個視圖控制器,VC1a,呈現VC2:我可以更改調用presentViewController的ViewController嗎?

VC1a - > presentViewController:VC2

是否有可能改變VC1a到VC1b這樣,當dissmissViewControllerAnimated被調用時,它會以動畫方式VC1b而不是VC1a?

我問的原因是因爲我想返回到不同的屏幕而沒有動畫返回到VC1a。這涉及縱向/橫向變化。

+0

我不知道爲什麼人們都給予了這個問題負面評價。當你在呈現的子視圖控制器中旋轉設備時,想從父視圖切換到橫向父視圖有什麼錯誤? – SparkyNZ

回答

0

警告。這對您的用戶來說可能是一個糟糕/令人困惑的UI選擇。 但是如果你必須...

您可以把VC1a一個UINavigationController內部和修改導航棧,而VC2是在前臺。喜歡的東西:

// in VC1a.m 

[self presentViewController:VC2 animated:YES completion:^{ 
    NSMutableArray *navigationStack = [[NSMutableArray alloc] init]; 
    for (UIViewController *viewController in self.navigationController.viewControllers) 
    { 
     if (viewController != self.navigationController.viewControllers.lastItem) 
     { 
      [navigationStack addObject:viewController]; 
     } 
     else 
     { 
      VC1b *viewControllerToSwapIn = [[VC1b alloc] init]; 
      // probably some more initialization here 
      [navigationStack addObject:viewControllerToSwapIn]; 
     } 
    } 
    self.navigationController.viewControllers = navigationStack; 
}]; 

或者可能是一個更好的主意:

// in VC1a.m 

[self presentViewController:VC2 animated:YES completion:^{ 
    VC1b *viewControllerToSwapIn = [[VC1b alloc] init]; 
    // probably some more initialization here 
    [navigationStack addObject:viewControllerToSwapIn]; 

    [self.navigationController popViewControllerAnimated:NO]; 
    [self.navigationController pushViewController:viewControllerToSwapIn animated:NO]; 
}]; 
0

OK,我實現了一個容器視圖控制器有兩個孩子 - 一個用於肖像,一個景觀,這花了我的問題的關心。

我已經花了好幾天,試圖找出如何處理內iOS6的正確旋轉,我不知道有從一個UINavigationController推動時旋轉的UITableViewController的錯誤。

感謝您的答覆@paulrehkugler - 我得到很失望,當我問到這個問題。在主視圖中顯示UINav/TableViewController時,似乎沒有任何有關如何處理方向更改的好例子。我當然不想實施這樣的黑客攻擊。

相關問題