Mam podklasę NSViewController, która ładuje swój widok z końcówki (z initWithNibName: bundle: i jest właścicielem pliku tej końcówki).Najlepszy sposób konfigurowania NSViewController inicjalizowanego za pomocą initWithNibName: bundle :?
muszę zrobić jakiś inicjalizacji po stalówka jest załadowany i chcę mojego kodu jest najbardziej kompatybilny:
- w iOS: Jest to metoda viewDidLoad to zrobić
- W OSX: W irbis, nie ma metody jak viewDidLoad ale awakeFromNib nazywa na właściciela pliku piszącej zbyt
Więc moje pytania to:
- Czy awakeFromNib jest wywoływany również na właścicielu pliku stalówki w Lion?
- Jeśli używam awakeFromNib, czy muszę wywołać [super awakeFromNib]? (czy NSViewController implementuje awakeFromNib?)
- Jeśli odpowiedź 1 brzmi TAK, czy jest to dobre rozwiązanie? :
- (void)initAfterNibLoaded { ... } - (void)viewDidLoad { // Code for ios [self initAfterNibLoaded]; } - (void)awakeFromNib { // Code for osx // Not sure if necessary [super awakeFromNib]; [self initAfterNibLoaded]; }
Jeśli odpowiedź brzmi NIE 1, jest to dobre rozwiązanie? :
- (void)viewDidLoad {
// Initialize after nib loaded
}
#ifndef TARGET_OS_IPHONE
- (void)loadView {
// Call parent method
[super loadView];
// Simulate viewDidLoad method
[self viewDidLoad];
}
#endif
Dziękuję
Ponieważ NSViewController nie jest obecny w UIKit, nie jestem pewien, dlaczego generalizujesz na wszystkich platformach. –
Tak, ale chcę zrobić mniej modyfikacji możliwe w kodzie, jeśli muszę przenieść go do ios. Zmiana klasy nadrzędnej z NSViewController na UIViewController nie jest wielką sprawą, ale wolę uniknąć wielu błędów, ponieważ niektóre metody są wywoływane w ios, a nie w osxie i na odwrót. – Johnmph
Odpowiedź jest oczywiście jQuery. –