Tôi hơi mới đối với việc phát triển MVC và iOS và tôi dường như không thể hòa giải cách kiểu dáng giao diện người dùng phù hợp với mô hình này.Các đối tượng UI kiểu dáng trong iOS có vi phạm MVC không?
Chế độ xem MVC được tạo bằng bảng phân cảnh và tôi có thể áp dụng kiểu dáng nguyên thủy thông qua trình kiểm tra thuộc tính của Xcode, nhưng bất kỳ điều gì phức tạp hơn tôi đều phải sử dụng Controller để tạo kiểu. Ví dụ:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated]; // required
// set background color of view
[[self view] setBackgroundColor:[UIColor darkGrayColor]];
}
Điều này dường như vi phạm rõ ràng MVC vì tôi đang áp dụng logic kiểu bên trong mã của bộ điều khiển. Tôi thấy điều này tương tự khi viết một ứng dụng HTML và thay vì sử dụng các tờ định kiểu, tôi viết mã để áp dụng các kiểu cục bộ trong JavaScript. Đây có phải là điểm yếu của iOS hoặc tôi chỉ làm sai?
Bạn có thể trộn và kết hợp cả hai trong mã của bạn. Nếu bạn muốn, bạn thậm chí có thể thao tác chi tiết mô hình trong Bộ điều khiển. MVC không được thi hành nghiêm ngặt theo các hướng dẫn chung của mẫu, nhưng nếu bạn muốn giữ đúng mô hình, bạn chỉ cần hạn chế sử dụng M hoặc V trong C. – ApolloSoftware
Có thể cho rằng kiểu dáng là một dạng dữ liệu. Vì bộ điều khiển thường cung cấp chế độ xem với dữ liệu, có bộ điều khiển cung cấp chế độ xem có kiểu tương tự. – rmaddy