2012-05-19 20 views
11

Tôi thực sự thích có tất cả các chế độ xem của mình được đặt trong Bảng phân cảnh nhưng có những lúc tôi sẽ có chế độ xem được hiển thị dựa trên nút được tạo bằng mã để sẽ không có tham chiếu Segue - nó sẽ bị ngắt kết nối hoàn toàn trong Storyboard. Tôi vẫn muốn thiết kế nó trong bảng phân cảnh mặc dù vậy tôi có thể có một cái nhìn tổng quan tốt đẹp của tất cả các màn hình của tôi.dạng xem tải StoryBoard không có Phân đoạn

Tôi có thể tải XIB (hoặc bất kỳ nội dung nào trong bảng phân cảnh) được thiết kế trong bảng phân cảnh khi một UIViewControler được tải không?

+0

Bạn có thể cho chúng ta một ví dụ về những gì bạn đang cố gắng để làm gì? loại dữ liệu nào chịu trách nhiệm tạo ra chế độ xem mới? Nói chung tôi sugest bạn tạo ra một lớp mới hoặc yust một cái nhìn whit cùng một lớp và tùy thuộc vào người dùng entery bạn ẩn hoặc genereate nội dung xem. Sẽ dễ dàng hơn cho bạn – Shawn

Trả lời

24

Tôi làm điều này trong dự án của tôi:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"MyViewController"]; 
[self.navigationController pushViewController: myController animated:YES]; 

Chỉ cần chắc chắn rằng bạn đã thiết lập nhận dạng của điều khiển của bạn một cách chính xác. Bạn có thể làm bằng cách này:

  1. chọn bộ điều khiển trong Storyboard
  2. trong bảng điều khiển tiện ích, nhấp vào Thuộc tính thanh tra. Bất cứ điều gì bạn quyết định đưa vào trường Identifier là những gì diễn ra trong câu lệnh 'instantiateViewControllerWithIdentifier'.

Tôi hy vọng điều này sẽ hữu ích.

+0

hoàn hảo, chính xác những gì tôi đang tìm kiếm - cảm ơn. Mặc dù nó không phải là hoàn toàn cần thiết nó là tốt đẹp để xem tất cả các UIViews của tôi trên một màn hình. – Slee

+0

Ban đầu nó không tập luyện, nhưng sau đó .. '[self presentViewController: vc hoạt hình: CÓ hoàn thành: NO];' đã làm phép thuật cho tôi ở dòng cuối cùng. –

+0

Có Mayu, cần lưu ý rằng việc sử dụng [self.navigationController push ...] chỉ hoạt động nếu bộ điều khiển xem đó được nhúng trong bộ điều khiển chế độ xem điều hướng. – mihai

2

Bạn phải chỉ định ID bảng phân cảnh cho bộ điều khiển chế độ xem của mình.

IB> Hiển thị Identity thanh tra> identity> Storyboard ID

Storyboard ID

Swift

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
let viewcontroller = storyboard.instantiateViewControllerWithIdentifier("viewController") 
        as? UIViewController 
if let navigationController = self.navigationController { 
    navigationController.pushViewController(viewcontroller!, animated: true) 
} 
Các vấn đề liên quan