2015-01-27 15 views
11

Giả sử bạn đã sao chép Main.storyboard từ dự án Xcode 6 vào một thư mục Tài nguyên của sân chơi độc lập. Làm cách nào để bạn có thể tạo nhanh UIStoryboard bằng cách sử dụng tệp Main.storyboard? Đang cố gắng để sử dụng mặc định qua nil không hoạt động:Làm thế nào để bạn tạo một Bảng phân cảnh từ một tệp trong một sân chơi iOS?

let storyboard = UIStoryboard(name: "Main", bundle: nil) 

cũng không sử dụng một cách rõ ràng bó chính:

let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 

Ngay cả khi sân chơi là một phần của dự án Xcode của kịch bản, tôi nhận được cùng lỗi: "Không thể tìm thấy bảng phân cảnh có tên 'chính' trong gói NSBundle ..."

Dường như đường dẫn gói là chính xác và sẽ có thể deserialize tệp bảng phân cảnh.

Trả lời

10

Tôi thấy điều này:

"Bạn có thể ném một file xib vào nguồn lực của bạn, nhưng sân chơi không thể đọc được nó hay chạy nó bởi vì nó không có trong hình thức biên soạn Hôm nay, tôi (finallly!) Suy nghĩ của việc sử dụng ibtool. để biên dịch trước tập tin MainMenu.xib thành nib và sau đó tải nó Khi bạn cài đặt các công cụ dòng lệnh của Xcode, ibtool sẽ được thêm vào/usr/bin.Vì vậy, tất cả những gì bạn cần làm để biên dịch nib của bạn là ra lệnh sau:

ibtool --compile MainMenu.nib MainMenu.xib

Ném kết quả đó vào thư mục tài nguyên của sân chơi và yo bạn đã sẵn sàng để tải nó lên. "

tại http://ericasadun.com/2015/03/25/swift-todays-wow-moment-adding-menus-to-playgrounds/

kịch bản của bạn sẽ được biên dịch thành nhiều ngòi (một cho mỗi cảnh)

Hy vọng nó giúp

2

Tương tự như @ybakos câu trả lời, nhưng để truy cập vào một khuôn khổ với một kịch bản mà bạn muốn để tải (sau đó cả Sân chơi và ứng dụng của bạn có thể sử dụng cùng một bảng phân cảnh trực tiếp):

Nếu bạn có Bảng phân cảnh trong khung được biên dịch cho trình mô phỏng và cũng được nhúng vào dự án mà hơn nữa sống trong một không gian làm việc làm việc, bạn sẽ có thể tải khung trong một sân chơi trong cùng không gian làm việc thông qua bó khuôn khổ, như vậy:

let frameworkBundle = Bundle(identifier: "com.kigisoft.KGWeatherMap") 
let storyboard = UIStoryboard(name: "WeatherMap", bundle: frameworkBundle) 

Bạn có thể tải về một dự án mẫu "StoryboardPlay" từ này Liên kết Dropbox:

Playground Example Projects

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