Tôi có Chế độ xem vùng chứa mà tôi đã xuất hiện trong bảng phân cảnh của mình. Có một mũi tên nhỏ tuyệt vời đại diện cho segue nhúng đến một cảnh khác. Đối tượng cấp cao nhất của cảnh đó được điều khiển bởi một tùy chỉnh UIViewController
. Tôi muốn gọi một phương thức được triển khai trong lớp tùy chỉnh của tôi. Nếu tôi có quyền truy cập vào vùng chứa, làm thế nào để tôi có thể tham khảo nội dung bên trong?Làm thế nào để có được các khung nhìn bên trong một thùng chứa trong Swift?
Trả lời
Bạn có thể sử dụng prepareForSegue
, một phương pháp trong UIViewController
, để truy cập vào bất kỳ số UIViewController
nào được tách biệt với bộ điều khiển chế độ xem hiện tại của bạn, bao gồm khoảng cách embed
.
Từ các tài liệu về prepareForSegue
:
Việc thực hiện mặc định của phương pháp này không có gì. Bộ điều khiển xem của bạn ghi đè phương thức này khi nó cần truyền dữ liệu có liên quan đến trình điều khiển chế độ xem mới. Đối tượng segue mô tả quá trình chuyển đổi và bao gồm các tham chiếu đến cả hai bộ điều khiển xem có liên quan đến phân đoạn.
Trong câu hỏi bạn đã đề cập cần gọi phương thức trên bộ điều khiển chế độ xem tùy chỉnh của bạn. Dưới đây là ví dụ về cách bạn có thể thực hiện điều đó:
1. Đặt mã nhận dạng nhúng của bạn. Bạn có thể thực hiện việc này trong Trình tạo giao diện bằng cách chọn phân đoạn của bạn, chuyển đến Trình biên tập thuộc tính và tìm kiếm theo Bảng phân cảnh nhúng Segue.
2. Tạo lớp một cái gì đó của bạn như:
Một tài liệu tham khảo được giữ ở embeddedViewController
nên myMethod
có thể được gọi sau. Nó được khai báo là một tùy chọn không được khai báo hoàn toàn bởi vì nó không có ý nghĩa để cung cấp cho nó một giá trị ban đầu không phải là nil.
// This is your custom view controller contained in `MainViewController`.
class CustomViewController: UIViewController {
func myMethod() {}
}
class MainViewController: UIViewController {
private var embeddedViewController: CustomViewController!
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? CustomViewController,
segue.identifier == "EmbedSegue" {
self.embeddedViewController = vc
}
}
// Now in other methods you can reference `embeddedViewController`.
// For example:
override func viewDidAppear(animated: Bool) {
self.embeddedViewController.myMethod()
}
}
3. Đặt lớp UIViewControllers
của bạn trong IB sử dụng nhận dạng Inspector. Ví dụ:
Và bây giờ mọi thứ sẽ hoạt động. Hy vọng rằng sẽ giúp!
Câu trả lời của ABaker là cách tuyệt vời để phụ huynh tìm hiểu về đứa trẻ. Để mã trong trẻ tiếp cận được với cha/mẹ, hãy sử dụng self.parent
(hoặc trong ObjC, parentViewController
).
- 1. Thùng chứa làm tổ trong thùng chứa đựng đồ chứa
- 2. Làm thế nào để có được tất cả các biến có sẵn trong một khung nhìn trong PHP?
- 3. Làm thế nào để hiển thị khung nhìn Backbone bên trong một thành phần React?
- 4. Thùng chứa bên trong Công việc Kubernetes?
- 5. Bên trong thùng chứa Docker, cronjobs không được thực hiện
- 6. Làm thế nào để lấy được đại diệnObject từ một khung nhìn trong một NSCollectionViewItem?
- 7. Làm thế nào để có được con của một thùng chứa WPF theo loại?
- 8. Làm thế nào để tìm kiếm một mảng có chứa các phần tử struct trong Swift?
- 9. Làm thế nào để lưu trữ một CBPeripheral để sử dụng trong các khung nhìn khác
- 10. Làm cách nào để căn giữa các mục bên trong thùng chứa đồng vị?
- 11. Tải một ViewController bên trong một khung nhìn Container
- 12. Các thùng chứa nào trong Java
- 13. Làm thế nào để xóa một thùng chứa phiên trong Zend framework2
- 14. làm thế nào để có được đầy đủ momentjs api bên trong góc nhìn?
- 15. giữ cửa sổ bật lên bootstrap bên trong khung nhìn
- 16. Làm thế nào để liệt kê các đối tượng _all_ trong thùng chứa S3 của Amazon?
- 17. Thùng chứa trong khung lò xo là gì?
- 18. T-SQL Sử dụng CTE để khởi tạo các biến bên trong một khung nhìn
- 19. Làm cách nào để chọn nhiều giá trị trong một hộp danh sách bên trong editItemTemplate trong khung nhìn?
- 20. S3fs không thể gắn bên trong thùng chứa docker?
- 21. Có thùng chứa được sắp xếp trong STL
- 22. Làm thế nào để tích hợp các khung nhìn Rails với góc nhìn ng-view?
- 23. Làm thế nào để kiểm soát hiển thị có điều kiện các khung nhìn một phần trong ASP.NET MVC
- 24. Người dùng root bên trong thùng chứa Composer
- 25. Có cách nào để thêm một cột vào một khung nhìn hiện có trong mysql không?
- 26. Các phần tử trong thùng chứa flex không được gói
- 27. Trong Rails, làm thế nào để bạn render JSON bằng cách sử dụng một khung nhìn?
- 28. Làm thế nào để giữ một FontSize không đổi trong Khung nhìn WPF?
- 29. Làm thế nào để truy cập một lớp Swift bên trong trong Objective-C trong cùng một khuôn khổ?
- 30. Làm thế nào để giao tiếp giữa các khung nhìn trong RCP Eclipse?
PrepareForSegue có func bị ghi đè từ cái gì khác không? – FlaqueDeau
Điều này làm việc tuyệt vời, tuy nhiên tôi nhận thấy tôi không cần 'where segue.identifier ==" EmbedSegue "' bit, bạn có lẽ sẽ cần rằng nếu bạn có nhiều bộ điều khiển nhúng, nhưng chỉ với một, có vẻ như bạn don không cần định danh. – TaylorAllred