Tôi có một ứng dụng iPhone có các hương vị da khác nhau, với các tài sản và âm thanh nghệ thuật khác nhau, nhưng tất cả cùng một mã.Một nib, các tài sản khác nhau. Bó?
Tôi đã thiết lập mọi thứ với nhiều mục tiêu, nhưng vấn đề tôi gặp phải là phải có một tập hợp các tệp nib UIBuilder khác, một tệp cho mỗi lượt xem trên mỗi mục tiêu, được thiết lập để trỏ tới nghệ thuật chính xác cho mục tiêu đó.
Đây là một chút bực bội, bởi vì nếu tôi thay đổi một tệp nib, tôi phải tự thực hiện các thay đổi tương tự, cùng một kết nối, v.v. trong tất cả các tệp nib khác. Tôi cũng đặt tất cả các tài sản trong với tên khác nhau cho các giao diện khác nhau là tốt, vì vậy họ không va chạm trong dự án. Vì vậy, nếu tôi có mục tiêu A và B, tôi có a_main_menu.png
, b_main_menu.png
... a_FooViewController.xib
, b_FooViewController.xib
... vv
Có cách nào để làm cho một tập tin nib trỏ đến tài sản có cùng tên, nhưng đang ở trong ... umm, các gói khác nhau? đó là những gì một gói dành cho? Tôi có thể tưởng tượng sửa một cái gì đó như thế này trong mã của tôi (có lẽ tìm kiếm và thay thế A cho B trong nib trước khi tải nó thậm chí có thể đủ tốt), mặc dù tôi đã không thử nó, đó là xấu xí. Đây là một chiến lược có thể quản lý cho bộ ứng dụng đầu tiên của tôi (mặc dù tối ưu), nhưng khi nội dung của tôi trở nên phức tạp hơn, thật khó để giữ cho các tệp xây dựng của tôi được đồng bộ hóa, và nó không phải là một cách rất DRY làm việc. Có cách nào tốt hơn ngoài việc bỏ rơi uibuilder và tạo quan điểm của tôi trong mã? Nó sẽ là tốt đẹp nếu điều này làm việc ở cấp xcode/builder, do đó, người xây dựng sẽ tôn trọng mục tiêu hiện tại của tôi và hiển thị nghệ thuật cho mục tiêu đó trong khi tôi đang làm việc ... nhưng tôi có thể sống mà không có điều đó, như thể Tôi có thể chọn tập hợp nghệ thuật hiện tại vào thời gian chạy và tôi chỉ có thể làm việc với một bộ trong trình tạo. Tôi cũng có thể làm điều đó với một bộ ngòi bằng cách có một mục tiêu duy nhất và tự thay thế tất cả các nghệ thuật trước khi xây dựng, nhưng điều đó cũng không tốt lắm.
Điều tốt nhất là nếu tôi có thể kết hợp hai chiến lược - như thể tôi có một mục tiêu có một cái nhìn từ một vài cái mà chỉ cần được đặt ra khác ... nhưng đó là tùy chọn.
Tôi có đặt câu hỏi đúng không?
Cảm ơn!