我有一個視圖控制器,VC1a,呈現VC2:我可以更改調用presentViewController的ViewController嗎?
VC1a - > presentViewController:VC2
是否有可能改變VC1a到VC1b這樣,當dissmissViewControllerAnimated被調用時,它會以動畫方式VC1b而不是VC1a?
我問的原因是因爲我想返回到不同的屏幕而沒有動畫返回到VC1a。這涉及縱向/橫向變化。
我有一個視圖控制器,VC1a,呈現VC2:我可以更改調用presentViewController的ViewController嗎?
VC1a - > presentViewController:VC2
是否有可能改變VC1a到VC1b這樣,當dissmissViewControllerAnimated被調用時,它會以動畫方式VC1b而不是VC1a?
我問的原因是因爲我想返回到不同的屏幕而沒有動畫返回到VC1a。這涉及縱向/橫向變化。
警告。這對您的用戶來說可能是一個糟糕/令人困惑的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];
}];
OK,我實現了一個容器視圖控制器有兩個孩子 - 一個用於肖像,一個景觀,這花了我的問題的關心。
我已經花了好幾天,試圖找出如何處理內iOS6的正確旋轉,我不知道有從一個UINavigationController推動時旋轉的UITableViewController的錯誤。
感謝您的答覆@paulrehkugler - 我得到很失望,當我問到這個問題。在主視圖中顯示UINav/TableViewController時,似乎沒有任何有關如何處理方向更改的好例子。我當然不想實施這樣的黑客攻擊。
我不知道爲什麼人們都給予了這個問題負面評價。當你在呈現的子視圖控制器中旋轉設備時,想從父視圖切換到橫向父視圖有什麼錯誤? – SparkyNZ