Jestem trochę nowy w rozwoju MVC i iOS i nie mogę się zgodzić, jak styl UI pasuje do tego paradygmatu.Czy stylizacja obiektów interfejsu użytkownika w iOS narusza MVC?
Mój widok MVC jest zbudowany za pomocą storyboardów i mogę zastosować prymitywny styl za pomocą inspektora atrybutów Xcode, ale cokolwiek bardziej skomplikowanego muszę użyć kontrolera do stylu. Na przykład:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated]; // required
// set background color of view
[[self view] setBackgroundColor:[UIColor darkGrayColor]];
}
To wydaje się być oczywiste naruszenie MVC, jak ja stosując logikę styl wewnątrz kodu sterownika. Uważam, że jest to analogiczne do pisania aplikacji HTML i zamiast używania arkuszy stylów, piszę kod, aby zastosować style lokalnie w JavaScript. Czy to jest słabość systemu iOS, czy też robię to źle?
Można łączyć ze sobą oba elementy w kodzie. Jeśli chcesz, możesz nawet manipulować szczegółami modelu w sterowniku. MVC nie jest ściśle przestrzegane w ogólnych wytycznych wzorca, ale jeśli chcesz pozostać wiernym paradygmatu, musisz powstrzymać się od używania M lub V w C. – ApolloSoftware
Można argumentować, że styl jest formą danych. Ponieważ kontroler zwykle dostarcza widok danych, posiadanie sterownika zapewnia podobny styl widoku. – rmaddy