2011-10-26 33 views
17

Tôi đã tạo một dự án đơn giản với bảng phân cảnh và giờ đây nhận ra rằng chúng không hỗ trợ iOS 4.x và tôi muốn người dùng có các thiết bị này có thể tải xuống ứng dụng. Ứng dụng này chỉ là một trình điều khiển xem flipside và khá đơn giản nhưng nếu có cách nào để trích xuất XIB từ bảng phân cảnh, tôi muốn làm điều đó nhiều hơn là tạo lại nó.Trích xuất ngòi/xib từ bảng phân cảnh (iOS)

tl; dr: nhận .xib ra khỏi bảng .storyboard?

Trả lời

9

Tôi thấy rằng phương pháp đơn giản nhất là sao chép và dán các mục ra khỏi bảng phân cảnh, một lần xem cùng một lúc và tạo lại bộ điều khiển chế độ xem cho từng bộ.

Tuy nhiên, đối với bất kỳ ai thực hiện việc này, hãy lưu ý rằng bạn phải tạo xib cho MainWindow ngoài tất cả các XIB khác của bạn và treo nó lên, bao gồm thiết lập cửa sổ và ủy nhiệm ứng dụng. Bảng phân cảnh xử lý tất cả những điều này cho bạn, vì vậy khi bạn cố gắng tránh chúng, bạn có rất nhiều thiết lập thủ công để tạo các dự án không phải bảng phân cảnh từ các trình điều khiển get-go cho bạn. Đừng làm những gì tôi đã làm, và cố gắng làm cho bộ điều khiển gốc của bạn là bộ điều khiển xem chính của bạn, bởi vì nó sẽ phát hiện ra những điều về cách UIApplication không tuân thủ các giá trị quan trọng cho các thuộc tính cá nhân của XIB của bạn.

file
+0

nếu bạn có thể chia sẻ dự án mẫu, sẽ tuyệt vời! – Firdous

1

Không thể tải tệp xib. Bảng phân cảnh của bạn được biên dịch thành các tệp nib và được đóng gói thành một tệp storyboardc trong gói ứng dụng của bạn.

Để định vị tệp nib, hãy chọn tệp thi hành được xây dựng của bạn trong Trình tìm kiếm và nhấp chuột phải vào 'Hiển thị nội dung gói'. Điều hướng đến thư mục en.lproj và tìm tệp storyboard.storyboardc. Nhấp chuột phải vào 'Hiển thị nội dung gói' một lần nữa trên tệp bảng phân cảnh và bạn sẽ tìm thấy ngòi bút của mình. Họ sẽ không được sử dụng nhiều cho bạn mặc dù bởi vì họ được biên soạn ngòi nhị phân.

0

Bạn không thể trích xuất các tệp .xib từ bảng phân cảnh nhưng hãy thử cách này. Có dự án dựa trên .xib của bạn mở và tạo các tệp .xib trống cho các chế độ xem của bạn và cũng có thể mở dự án bảng phân cảnh cùng một lúc. Chọn tất cả các phần tử giao diện người dùng trong cảnh kịch bản của bạn và chỉ cần kéo và thả chúng vào dự án dựa trên .xib. Tôi đã làm điều này theo cách khác xung quanh (di chuyển từ .xib sang storyboard) mà không có vấn đề gì.

20

xib không thể được chiết xuất từ ​​các kịch bản nhưng bạn có thể nhanh chóng UIViewControllers ra khỏi kịch bản bởi instantiating kịch bản của bạn thành một Object UIStoryboard và nhận được UIViewController qua nhận dạng của nó, đây là cách tôi làm điều đó:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName: 
          @"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]]; 

    UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"myId"]; 

hi vọng điêu nay co ich.

+0

Cảm ơn, nhưng mục tiêu chính của tôi là tránh sử dụng bảng phân cảnh trong dự án sau khi nó đã được xây dựng với chúng - tôi phải thêm hỗ trợ cho 4.0 mà không thể sử dụng bảng phân cảnh. – Tim

+0

Không có cách nào để sử dụng Outlet để tham khảo bộ điều khiển với ổ cắm phải không? –

+1

@Sparq, Tiết kiệm thời gian của tôi, tôi đã tìm kiếm điều này, cảm ơn. – Mysteltainn

4

Như một vài người khác đã đề xuất, đặt cược tốt nhất của bạn là sao chép các chế độ xem từ bảng phân cảnh thành XIB.

enter image description here

+0

Đẹp, đây là cách đơn giản nhất cho đến khi táo thêm tùy chọn xuất vào tùy chọn xib trên chế độ xem được chọn trong bảng phân cảnh. –

+0

Tại đây, những gì bạn đang làm là lấy cảnh từ khung cảnh và biến nó thành chế độ xem phụ của Chế độ xem của XIB. Bạn có thể làm tốt hơn bằng cách thay thế chế độ xem của XIB với chế độ đó từ cảnh không? Tôi đã thử điều này - và nó dường như hoạt động – etayluz

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