我们从故事板中实现UINavigationController和UIViewController,如下所示:
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"AddOrder" bundle:nil];
UIViewController *vc = [sb instantiateInitialViewController];
UIViewController *topVC = ((UINavigationController *) vc).topViewController;
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:NULL];
从这里开始,看起来UIViewController
不占用整个UIWindow
,它看起来像ios6上的20点。如果仔细观察,您甚至可以在左上角看到基础UISplitViewController
的分隔线。
问题是,当用户点击UITableView
上的UIViewController
选项时,我们会调用[self performSegueWithIdentifier: sender:]
推送新的UIViewController
,但是当它们轮换时,它看起来像这样:
至少可以说,有点局促。 但是现在,当我们回到第一个UIViewController
并轮换时,我们得到了这个:
问题是,搜索栏现在已被覆盖。您会注意到您无法再查看基础UISplitViewController
。正如您所看到的,现在看起来UINavigationBar
覆盖了其他20个点并且高度更大。
我有点"修复"通过调用self.edgesForExtendedLayout = UIRectEdgeNone;
来解决这个问题,但这只是推动了UIView
相当远的问题。我还玩弄了[UIViewController attemptRotationToDeviceOrientation]
而没有添加任何内容。在Apple的HIG中,它指出导航栏不应该改变它在iPad上的高度,但是当我退出框架时,这种情况发生在我身上。
有什么想法吗?
答案 0 :(得分:1)
您好您可以使用这些属性创建视图控制器
在应用程序窗口中添加模态
[self.view.window.rootViewController presentViewController:vc animated:YES completion:nil];
我认为你的问题将由此解决。
答案 1 :(得分:0)
只需按
修复self.automaticallyAdjustsScrollViewInsets = NO;
将此行放在viewDidLoad
方法中,然后创建其他控制器。
它只适用于iOS 7和后者。