在我的導航堆棧的孩子,我設置edgesForExtendedLayout = .None
設置edgesForExtendedLayout影響它的父視圖控制器
當我點擊後退按鈕,在我父的UITableView被「移動」起來,彷彿導航欄不存在。 (導航欄覆蓋表格)。
爲什麼孩子的邊緣設置會影響其父項?我只希望它影響當前的viewController。
在我的父母,我這是怎麼產生的的UITableView:
self.tableView.delegate = self
self.tableView.dataSource = self
self.tableView.frame = CGRectMake(0, 0, screenWidth, CGRectGetMinY(self.tabBarController!.tabBar.frame))
self.tableView.addSubview(self.refreshControl)
self.tableView.tableFooterView = UIView(frame: CGRectZero)
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 100.0
self.tableView.clipsToBounds = true
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
self.tableView.separatorColor = UIColor(hex: 0xededed)
self.tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0)
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)
self.tableView.layoutMargins = UIEdgeInsetsZero
self.view.addSubview(self.tableView)
難道是因爲我錯誤地設置的tableView的框架?我想讓表格從導航欄下面開始,但是在標籤欄之前結束。
你還沒有在你的問題重現您的問題提供足夠的信息。請提供重現此問題所需的代碼[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – JAL
我試圖重現你的問題,像這樣:在一個'UIViewController'中設置一個'UITableView',並使用一個單元來推送一個新的'UIViewController'。在該視圖控制器的'viewDidLoad'中,我設置了'self.edgesForExtendedLayout = .None'。當我按「返回」返回到'UITableViewController'時,我看不到表視圖位置的任何變化。你是直接修改'UINavigationController'上的'edgesForExtendedLayout'嗎? – JAL
@JAL我在孩子的'''viewDidLoad()'''中設置'''self.edgesForExtendedLayout = .None'''。我不確定直接在UINavigationController上修改它是什麼意思。 – TIMEX