Tôi có một bộ điều khiển xem trông giống như:kích thước khung hình không chính xác khi instantiating ViewController w/xib
class SpotViewController: UIViewController {
let spot: Spot
init(spot: Spot) {
self.spot = spot
super.init(nibName: "SpotViewController", bundle: nil)
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
print("viewWillAppear: \(view.frame)") # => (0.0, 0.0, 600.0, 600.0)
}
override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad: \(view.frame)") # => (0.0, 0.0, 600.0, 600.0)
}
}
Khi tôi nhanh chóng điều khiển xem qua let spotViewController = SpotViewController(spot: spot)
và đẩy nó vào bộ điều khiển chuyển hướng khung kết quả là không chính xác trong cả hai viewDidLoad
và viewWillAppear
. Nó cho tôi (0.0, 0.0, 600.0, 600.0)
là kích thước trong trình tạo giao diện.
Tại sao điều này xảy ra và cách chính xác để tạo nhanh trình điều khiển chế độ xem là gì/xib để đảm bảo rằng khung hình chính xác?
How are you cho thấy bộ điều khiển (xem)? – Wain
@Wain Tôi chỉ đang đẩy nó vào ngăn xếp 'navigationController' w /' navigationController! .pushViewController (spotViewController, animated: true) ' –
Khung trong viewDidLayoutSubviews() là gì? –