9

"Podczas modularnego przedstawiania kontrolera nawigacyjnego często łatwiej jest programowo utworzyć i skonfigurować obiekt kontrolera nawigacyjnego, chociaż można w tym celu również użyć narzędzia do tworzenia interfejsów, co zwykle nie jest zalecane." Jeśli to prawda, ponieważ mój kontroler nawigacyjny jest prosty, wolę dostosować widok w IB!Dlaczego firma Apple zaleca programowe tworzenie kontrolerów nawigacyjnych?

Odpowiedz

6

Chociaż nie znamy dokładnej przyczyny, to jest mój strzał w nim:

Podczas tworzenia kontrolera programowo, trzeba tylko kilka linii kodu, w rzeczywistości, w większości przypadków może to być naprawdę kilka: tworzenie, ustawianie kontrolera root, prezentowanie i zwalnianie. Alternatywy są szybko przeliczalne:

  • Można kontrolować widok jako ujście w sterowniku podstawowym. Potem jednak pozostawał w pamięci przez cały czas. Byłaby to nie tylko strata pamięci, ale nie ma to zbytniego sensu, dopóki nie jest potrzebna.
  • Można utworzyć instancję kontrolera z pliku stalówki. Wtedy jednak trzeba by zrobić wiele rzeczy, które chcesz zrobić na dwa sposoby:
    • utworzyć kontroler w kodzie z Alloc, init
    • Konfigurowanie pewne właściwości - zarówno w klasie zwyczajem, stalówka lub kilka linii kodu
    • przedstawić go
    • Release to

teraz, biorąc pod uwagę, że alternatywą jest tylko kilka linii konfiguracja kodu, narzut ładowania pliku NIB whic h tak naprawdę nie jest bardzo tani, naprawdę nie jest wart dodatkowego komfortu. Jeśli robisz dużo konfiguracji, to i tak trafi ona do niestandardowej klasy, bez względu na to, czy ładujesz z końcówki, czy tworzysz w kodzie.

Tylko moje myśli ...

+1

dobra odpowiedź +1 :) interfejs Builder jest diabeł i to szybko stają się bardzo widoczne dla każdego „poważne” iphone programistę, który robi wszystko programowo jest znacznie lepszym rozwiązaniem. –

+0

Jestem n00b na iPhone programowania i nikt nie może mnie powstrzymać! – gurghet

+0

Nie używaj Interface Builder, lepiej napisać to ręcznie. Możesz użyć IB, aby obliczyć projekt, ale nie używaj go w końcowym projekcie. Wspomniałeś, że jesteś NOObem, obejrzyj te filmy: http://www.eng.utah.edu/~cs4962/index.html Dowiesz się dużo, a Matt nie wierzy w używanie IB. – Brad