初始加载时导航控制器后面的UITableViewController中的UITableView

时间:2015-03-11 18:48:29

标签: ios uitableview swift uinavigationbar

在我的UITableViewController的初始加载中,第一行被隐藏在导航后面,但是如果我推送到另一个视图并返回到这个UITableViewController,它被正确加载并且第一行没有被遮挡。我无法想出这个。

这是表的初始加载的屏幕截图,右边的那个是从我通过点击一行推送的其中一个视图返回之后

enter image description here

这是我的控制器代码:

class AccountInfoTableViewController: UITableViewController{

var delegate: AccountInfoTableViewDelegate?

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController?.topViewController.title = "Account Info"
    self.automaticallyAdjustsScrollViewInsets = true
    println("NAV BAR HEIGHT \(self.navigationController?.navigationBar.frame.size.height)") // 44.0
// prints NAV BAR HEIGHT 44.0

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 70
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    if let cell = tableView.cellForRowAtIndexPath(indexPath){
        delegate?.accountInfoTableRowClicked(cell.textLabel!.text!)
    }
}

}

可能的重要注意事项:

此UITableViewController用于标签栏控制器

添加了更多详情和代码in this question

2 个答案:

答案 0 :(得分:1)

看看你的另一个问题,我想知道将UITabBarController嵌入到UINavigationController中是否也是同样的问题。如果是这种情况,则再次回顾Just,控制器层次结构应如下所示:

第一个UINavigationController - >第一个UITableViewController 第二个UINavigationController - >第二个UITableViewController 最后,将上述两个UINavigationControllers添加到UITabBarController的viewControllers数组中。

希望有所帮助!

答案 1 :(得分:0)

UITableViewController是否嵌入了故事板中的UINavigationController?这样做,你应该是金色的。您是否尝试过手动将顶部内容偏移(通过故事板)调整为44?