Pracuję na aplikacji na iPhone'a i otrzymuję (zerowe) odwołania do pól IBOutlet w moim kontrolerze. Mam podklasę UIViewController, która jest ustawiona jako właściciel pliku w moim XIB. Mam zestaw elementów interfejsu użytkownika, które są podłączone do kontrolera. Po wczytaniu z NIB i próbie ustawienia właściwości dla tych elementów UI, stwierdzam, że są one (zerowe). Aby wyjaśnić niektóre kod:Instancje IBOutlet są (zerowe) po załadowaniu z NIB
ExpandSearchPageController.h:
@interface ExpandSearchPageController : UIViewController
{
IBOutlet UITextView * completeMessageView;
}
-(void)checkTextField;
@property (nonatomic, retain) IBOutlet UITextView * completeMessageView;
ExpandSearchPageController.m:
@implementation ExpandSearchPageController
@synthesize completeMessageView;
-(void)checkTextField
{
NSLog(@"text field: %@",completeMessageView);
}
ExpandSearchPageController jest ustawiony jako plik Właścicielem dla ExpandSearchPage.xib. Funkcja UITextView ExpandSearchPage.xib jest połączona z pełnym widokiemMessageView.
Kiedy zadzwonić
ExpandSearchPageController * searchExpanderPage = [[ExpandSearchPageController alloc] initWithNibName:@"ExpandSearchPage" bundle:[NSBundle mainBundle]];
[searchExpanderPage checkTextField];
wynik jest
"text field: (null)"
inny punkt zainteresowania, który złapał mnie. Podczas prezentacji widoku kontrolera modally z 'presentViewController: animowane: Zakończenie:' wszystkie IBOutlets będzie zerowa, aż pojawi się widok (co odkrył). Będziesz więc musiał uzyskać do nich dostęp poprzez blok zakończenia, który zostanie wywołany, gdy w modalu zostanie wywołane 'viewDidAppear'. – guptron