在 UISplitViewController 中弹出 UINavigationController 会导致奇怪的过渡
Posted
技术标签:
【中文标题】在 UISplitViewController 中弹出 UINavigationController 会导致奇怪的过渡【英文标题】:Popping in a UINavigationController inside a UISplitViewController causes strange transition 【发布时间】:2012-04-01 06:16:29 【问题描述】:我在UISplitViewController
的主视图中使用UINavigationController
。在我的UINavigationController
里面,像往常一样,我有一个UITableViewController
。在此表视图中选择一个单元格会将一个新的UINavigationItem
推送到堆栈上。这种转变正如我所料发生的。但是,一旦我按下后退按钮,返回顶部的过渡UINavigationItem
不会像往常一样从左向右滑动。相反,屏幕变黑,持有UINavigationController
/UITableViewController
的主视图从顶部在屏幕中心向下滑动,然后 UINavigationController 出现在我期望的左侧。我发现了类似的问题,但所有接受的答案都围绕着没有正确处理轮换。我已经仔细检查了我的所有视图控制器是否针对所有方向返回 YES
。
【问题讨论】:
在UITableViewController
中正确实现我在UINavigationViewController
中使用的方向(在iPad 上返回YES)为我解决了这个问题。
我希望可以。从那时起我就再也没有得到回应并继续前进,并且不记得我是如何解决问题的......
类似问题:***.com/questions/14205511/…
【参考方案1】:
在我的视图控制器中实现以下为我解决了这个问题
-(NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskAll;
希望它也适合你
【讨论】:
【参考方案2】:你应该检查你在视图控制器中的 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
方法的实现,你已经推入 UINavigationController。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
// should return YES for all orientations
// or at least for orientation that your UINavigationController supports.
对我来说,这个问题只出现在 ios 5 上,但如果你在 iOS 6 上也遇到过,你可以用类似的方式实现-(NSUInteger)supportedInterfaceOrientations
。
希望对你有帮助。
【讨论】:
以上是关于在 UISplitViewController 中弹出 UINavigationController 会导致奇怪的过渡的主要内容,如果未能解决你的问题,请参考以下文章
UISplitViewController:在 detailView 中导航
在 UISplitViewController 中使用 SwiftUI 列表侧边栏
UISplitViewController:为啥我不应该在导航或标签栏界面中显示它?