UIView non ha riferimento a UIViewController da default.You può aggiungere al tuo sottoclasse UIView e impostare quando si creano UIView in UIViewController.
Se siete alla ricerca di genitore del viewcontroller, ogni UIViewController ha proprietà parentViewController
, ma se si vuole accedere a questa da UIView è necessario per raggiungere la vostra UIViewController prima.
Si può vedere ad esempio come creare riferimento alla vostra UIViewController nella sottoclasse di UIView e come/dove per configurarlo in View Controller Programming guide for iPhone, vedere la sezione creazione della vista di programmazione in Definizione di una classe personalizzata controller View, qui è l'esempio, per maggiori dettagli vedi l'esempio Metronome collegato.
- (void)loadView {
self.wantsFullScreenLayout = YES;
MetronomeView *view = [[MetronomeView alloc]
initWithFrame:[UIScreen mainScreen].applicationFrame];
view.metronomeViewController = self;
self.view = view;
self.metronomeView = view;
[view release];
}
In intestazione:
@interface MetronomeView : UIView {
MetronomeViewController *metronomeViewController;
...
Questa è una buona soluzione, ma le visualizzazioni non dovrebbero mai avere la necessità di accedere direttamente al loro controller. Ecco perché abbiamo delegati. – Sulthan