我遇到了一个小问题,在横向启动我的splitview时,我的左视图控制器上方有一个小黑点:
将我的ipad旋转到肖像并切换回横向后,空间消失了。
如果我将uitableviewcontroller直接加载到左视图中,而不是在navigationcontroller中,它可以正常工作:
为什么会发生这种情况?
// Produkte
self.produkteMainTableVC = [[produkteMainTableViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *produkteMainNavigationController = [[UINavigationController alloc] initWithRootViewController:self.produkteMainTableVC];
self.produkteDetailVC = [[produkteDetailViewController alloc] initWithNibName:@"produkteDetailViewController" bundle:nil];
self.produkteSplitVC = [[UISplitViewController alloc] init];
self.produkteSplitVC.delegate = self.produkteDetailVC;
self.produkteMainTableVC.produkteDetailVC = produkteDetailVC;
[self.produkteSplitVC setViewControllers:[NSArray arrayWithObjects:produkteMainNavigationController,self.produkteDetailVC,nil]];
感谢所有人的帮助!
编辑: 它与状态栏完全相同,只有20px。这对任何人都有帮助吗?
EDIT2:
做这样的事情:
if(self.navigationController.navigationBar.frame.origin.y >= 20.0) {
self.navigationController.navigationBar.frame = CGRectMake(self.navigationController.navigationBar.frame.origin.x, 0.0, self.navigationController.navigationBar.frame.size.width, self.navigationController.navigationBar.frame.size.height);
}
结果是:
我会说,有点改进。但我不知道如何将我的tableview粘贴在导航栏下面。答案 0 :(得分:3)
我知道这是一个非常古老的话题,但也许它会帮助其他人......
我有同样的问题(使用相同的配置:tabbar中的splitview)。 这个属性解决了!
[self.splitViewController setWantsFullScreenLayout:YES];
答案 1 :(得分:0)
UINavigationController有一个令人讨厌的习惯,即将其内容向下移动20px,具体取决于放置它的位置。我猜它是在这里做的,因为你的分割视图控制器在一个tabbar控制器内部,Apple并没有祝福这种类型的安排。
答案 2 :(得分:0)
我遇到了同样的问题,没有解决方案。我唯一注意到的是当master没有包含UINavigationController作为其根目录时,这不会发生。
有人想解决这个问题吗?
答案 3 :(得分:0)
这就是我所做的,似乎工作得很好。
我创建了自己的自定义标签视图控制器,派生自UIViewController
。在viewDidLoad
中,我在视图底部添加了UITabBar
并将委托设置为自己,以便我可以处理标签更改。 (我将UITabBar
返回此rotatingFooterView
,因为UITabBarController
)标签更改了当前视图控制器的更改结果,就像真正的UISplitViewController
一样。在交换视图控制器(有时是UINavigationController
,在主视图中托管UITabBar
)时,我在{{1}}上方的视图中添加并定位视图控制器的视图。我还小心地将viewWill / DidAppear / Disappear调用转发到当前视图控制器,以及每个will / didRotate消息。
答案 4 :(得分:0)
似乎从iOS 7.0发生此问题。在某些情况下设置UINavigationBar
的框架不起作用。我认为这可以解决您的问题:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
self.navigationController.view.frame = CGRectMake(0, -20, self.navigationController.view.frame.size.width,
self.navigationController.view.frame.size.height);
}
此代码只应调用一次(例如在- (void)viewDidLoad
中)。
在我的情况下,它适用于所有设备方向。