2013-09-25 55 views

Trả lời

7

Nó rất đơn giản với TyphoonStoryboard

By bootstrapping Typhoon in your plist, cùng với UILaunchStoryboardName thông thường và UIMainStoryboardFile, Typhoon sẽ đảm bảo rằng tất cả Storyboards là một thể hiện của TyphoonStoryboard. Sử dụng chính xác như bạn sẽ là một Storyboard bình thường, với lợi ích bổ sung mà phụ thuộc sẽ được tiêm theo các định nghĩa trong lớp TyphoonAssembly của bạn.

Tùy chọn, bạn có thể chỉ định định nghĩa nào sẽ được sử dụng cho mỗi viewController. Để làm điều đó, hãy sử dụng thuộc tính thời gian chạy 'typhoonKey' trong bảng phân cảnh. Nếu không, định nghĩa phù hợp với lớp điều khiển sẽ được sử dụng. Ví dụ:

example

Các tài liệu cho tính năng này là here.

8

Có thành phần TyphoonStoryBoard trong nhật ký, tuy nhiên chưa được triển khai (xem cập nhật bên dưới).

Hiện tại có phương thức -injectProperties: phương thức trên nhà máy thành phần mà bạn có thể sử dụng để áp dụng tiêm phụ thuộc vào một thành phần sau khi nó đã được khởi tạo, ví dụ. bởi hội đồng quản trị.

Còn bây giờ, bạn có thể phân lớp UIStoryboard và gọi -injectProperties: trên bộ điều khiển xem bằng cách ghi đè:

– instantiateInitialViewController 
– instantiateViewControllerWithIdentifier: 

Ví dụ:

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier { 
    id instantiatedViewController = [super instantiateViewControllerWithIdentifier:identifier]; 
    [[TyphoonComponentFactory defaultFactory] injectProperties:instantiatedViewController]; 
    return instantiatedViewController; 
} 

Cập nhật:

Tích hợp TyphoonStoryBoard hiện đã hoàn thành (tài liệu đang chờ xử lý), nd cam kết làm chủ. Nó sẽ được phát hành như một phần của Typhoon 2.0, trong những tuần tới.

+0

Âm thanh tuyệt vời. Liệu Typhoon có làm cho các bộ điều khiển xem dựa trên kịch bản có thể thử nghiệm nhiều hơn không? Đó là một nỗi đau suy nghĩ về TDD với họ. – fatuhoku

+0

@fatuhoku Có, tất cả các lợi ích thường xuyên của DI: Dễ dàng kiểm tra, bảo trì dễ dàng, sự gắn kết tốt, v.v. –

+1

Ahkay. Nếu tôi có thể đưa ra một gợi ý, và đó là, khung công tác cần có nhiều ví dụ hơn trong hướng dẫn sử dụng. Bảng phân cảnh ví dụ là khó hiểu, bởi vì trong mã thực tế, thời gian chạy quyết định những gì VC để tải, và quản lý hiệu quả phụ thuộc xem bộ điều khiển cho bạn. Không rõ Typhoon chặn đứng quá trình này như thế nào. Tôi đã thấy rằng bạn cần một TyphoonFactory hoặc một số như vậy, nhưng nó có một nhận thức về sự phân biệt đang xảy ra? – fatuhoku