UINavigationController - > UITabBarController - > UIViewController - > UITableView的
我有一个带有UITabBarController的UINavigationController作为其rootViewController,然后在其中一个选项卡(UIViewController)中放置一个UITableView
当我切换到包含UITableView的tabController之一时,导航栏下的tableView的第一个单元格。如果我按下另一个视图控制器,然后弹回,tableview重新布局正确。如何在开始时使其布局正确。
答案 0 :(得分:0)
在 viewWillAppear 中进行布局可以解决问题
答案 1 :(得分:0)
我解决了。这是topLayoutGuide的问题,通过覆盖topLayoutGuide属性修复它(Swift)
override var topLayoutGuide:UILayoutSupport {
get { return (self.parentViewController?.topLayoutGuide)! }
}
override var bottomLayoutGuide:UILayoutSupport {
get { return (self.parentViewController?.bottomLayoutGuide)! }
}
(目标C)
(id<UILayoutSupport>) topLayoutGuide {
return self.parentViewController.topLayoutGuide;
}
(id)bottomLayoutGuide { return self.parentViewController.bottomLayoutGuide; }
(void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; //这里需要NSLog,只需调用getter,不知道为什么在Objective C中没有默认调用getter NSLog(@“%@”,self.topLayoutGuide); }
(void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; //这里需要NSLog,只需调用getter,不知道为什么在Objective C中没有默认调用getter NSLog(@“%@”,self.topLayoutGuide); }