Để thêm vào câu trả lời của Eric và cập nhật nó cho Xcode 8 và Swift 3:
Một ID kịch bản thực hiện chính xác những gì tên ngụ ý: nó xác định. Chỉ cần nó xác định một bộ điều khiển xem trong tệp bảng phân cảnh. Đó là cách bảng phân cảnh biết bộ điều khiển xem nào.
Bây giờ, đừng nhầm lẫn với tên. ID bảng phân cảnh không xác định 'bảng phân cảnh'. Bảng phân cảnh, theo tài liệu của Apple, 'đại diện cho bộ điều khiển chế độ xem cho tất cả hoặc một phần giao diện người dùng của ứng dụng của bạn.' Vì vậy, khi bạn có một cái gì đó giống như hình dưới đây, bạn có một bảng phân cảnh gọi là Main.storyboard có hai bộ điều khiển xem, mỗi bộ điều khiển có thể được cung cấp một ID bảng phân cảnh (ID của chúng trong bảng phân cảnh).
Bạn có thể sử dụng một cái nhìn khiển ID storyboard để nhanh chóng và trở lại mà điều khiển xem. Sau đó, bạn có thể tiếp tục thao tác và trình bày nó theo cách bạn muốn. Để sử dụng ví dụ của Eric, nói rằng bạn muốn trình bày một bộ điều khiển vùng đang xem với định danh 'MyViewController' khi một nút được nhấn, bạn sẽ làm điều đó theo cách này:
@IBAction func buttonPressed(sender: Any) {
// Here is where we create an instance of our view controller. instantiateViewController(withIdentifier:) will create an instance of the view controller every time it is called. That means you could create another instance when another button is pressed, for example.
let vc = storyboard?.instantiateViewController(withIdentifier: "MyViewController") as! ViewController
present(vc, animated: true, completion: nil)
}
Xin lưu ý những thay đổi trong cú pháp.
Hãy thử cách đó và cách bạn nhận được self.storyboard 'self.storyboard' – RTB
self.storyboard có thể được truy cập từ bất kỳ bộ điều khiển xem nào. Tôi sẽ chỉnh sửa câu trả lời của tôi ngay bây giờ để bạn có thể xem – Eric
Và điều gì sẽ xảy ra nếu cần truy cập nó từ AppDelegate của tôi hoặc bất kỳ lớp nào khác? – RTB