2012-10-24 33 views
14

enter image description hereSegue giữa hai quan điểm điều khiển

Mở kịch bản của tôi (trình bày ở trên), tôi có một ViewController nắm giữ một MKMapView với các chú thích. Các chú thích này giữ biểu tượng tiết lộ, khi được khai thác, nên điều hướng người dùng đến một ViewController khác. Để làm như vậy, tôi đã tạo ra một khoảng cách đẩy giữa các bộ điều khiển xem. Sau đó tôi đã cho nó một mã định danh của 'showDetail' và triển khai mã sau đây.

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 
{ 
    [self performSegueWithIdentifier:@"showDetail" sender:self]; 
} 

Tuy nhiên tôi nhận được lỗi sau.

Could not find a navigation controller for segue 'showDetail'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.' 

Tôi sẽ làm gì sai? Tôi đã cố gắng thay đổi nguồn UIViewController của tôi thành một UINavigationController, nhưng xem sau đó chỉ hiển thị như một màn hình màu đen.

+0

Bạn có thể đăng ảnh chụp màn hình bảng phân cảnh của mình lên cả ViewControllers không? – Mariusz

+0

@Mariusz câu hỏi được cập nhật! Cảm ơn bạn. – Jonathan

+0

Hãy thử nhúng ViewController mục tiêu của bạn trong một NavigationController và kéo segue của bạn từ MapViewController đến NavigationController. – Mariusz

Trả lời

38

Bạn thực sự phải đặt UIViewController làm bộ điều khiển gốc của UINavigationController (hoặc được đẩy qua từ bộ điều khiển xem w/navcontroller). Để làm điều đó

  • Kéo một bộ điều khiển chuyển hướng mới vào kịch bản của bạn - nó sẽ bằng mặc định được gắn liền với một bộ điều khiển tableview
  • Xóa bộ điều khiển tableview Nhấp chuột phải trên bộ điều khiển navgiation , và kết nối "Root Xem điều khiển" tài sản để điều khiển xem hiện tại của bạn
  • Di chuyển điểm vào mũi tên từ bộ điều khiển xem của bạn vào thư mục gốc view controller
+0

Nó hoạt động! Cảm ơn bạn. Chỉ cần kiểm tra xem tôi có đúng không, bây giờ tôi có một TabBarController và một UINavigationController. Không có một bộ điều khiển có thể xử lý cả hai? – Jonathan

+0

Thanh toán tài liệu này: http://developer.apple.com/library/ios/#DOCUMENTATION/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/CombiningViewControllers.html#//apple_ref/doc/uid/TP40011313-CH6-SW1 Các bước là dưới tiêu đề "Tạo đối tượng bằng bảng phân cảnh". –

+0

Rất hữu ích! – Pierry

41

đơn giản nhất cách để làm điều này là để chọn View điều khiển bạn muốn được thư mục gốc của hệ thống phân cấp điều hướng của bạn và chọn

Editor > Embed In > Navigation Controller 

Điều này tạo ra bộ điều khiển chuyển hướng mới và móc lên mọi thứ cho bạn.

0

kiểm tra các bước sau: 1. để nhấp vào kết nối giữa hai bộ điều khiển chế độ xem. 2. nhấp vào thanh tra thuộc tính 3. đặt số nhận dạng thành "showDetail". 4. lưu và chạy.

Các vấn đề liên quan