我现在已经被这个问题困住了超过 2 周!在我的项目中,我有 1 个 ViewController(slide) 我想同时启用横向和纵向。其余的所有控制器/视图(幻灯片)我只想启用纵向模式。
棘手的部分是,我所指的“ViewController”同时连接到 NavigationControllers 和 TabBarControllers。请参阅下面的方案,其中我要启用横向/纵向的 ViewController 被命名为:ReferredViewController。
TabBarController ----> NavigationController ----> FristViewController --(push event)--> ReferredViewController
到目前为止,我已经尝试为 NavigationControllers 和 TabBarControllers创建一个CATEGORY 。但是由于我的 NavigationControllers 和 TabBarControllers 放置在项目的最开始,这将为整个项目设置规则。我的 ReferredViewController 放置在项目“故事板”的末尾或中间。我也尝试通过代码为单个 ReferredViewController 设置规则,但没有成功。
我最好的方法是将 FirstViewController 和 ReferredViewController 之间的事件从“推送”更改为“模态”。然后,ReferredViewController 可以同时旋转纵向/横向,并且项目的其余部分被锁定为纵向。但是,您可能知道所有导航(NavigationBar)都将丢失,用户将卡在该单张幻灯片上。
因此,我尝试在ReferredViewController.m 文件中使用以下代码示例启用 NavigationBar:
ShowTaskViewController *detailViewController = [[ShowTaskViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
navController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self.navigationController presentModalViewController:navController animated:YES completion:nil];
[navController release];
[detailViewController release];
但是ofc什么也没发生,我又回到了原点:O。FML!