UISwitch возвращает NULL? - PullRequest
0 голосов
/ 31 мая 2011

У меня есть UISwitch, который по какой-то причине возвращает (null). Ниже мой код:

AddAlbumViewController:

// .h 
IBOutlet UISwitch *photostreamSwitch;
@property (nonatomic, retain) IBOutlet UISwitch *photostreamSwitch;

// .m
@synthesize photostreamSwitch;
photostreamSwitch = [[UISwitch alloc] init];
NSLog(@"photostreamSwitch: %@", photostreamSwitch); // returns a not-null value

SecondViewController:

//.m
- (IBAction)createAlbum:(id)sender {
AddAlbumViewController *addAlbumViewController = [[AddAlbumViewController alloc] initWithNibName:@"AddAlbum" bundle:[NSBundle mainBundle]];
NSLog(@"Test Switch: %@",addAlbumViewController.photostreamSwitch); // returns null
[addAlbumViewController release];
}

Я думаю, что все настроено правильно. Если это помогает, AddAlbumViewController находится внутри UINavigationController, а SecondViewController содержит UINavigationController.

1 Ответ

2 голосов
/ 31 мая 2011

Контроллер представления создан, но его представление (т.е. его перо) еще не загружено, поэтому свойство еще не подключено.Вы можете принудительно загрузить перо, получив доступ к представлению контроллера:

- (IBAction)createAlbum:(id)sender {
    AddAlbumViewController *addAlbumViewController = [[AddAlbumViewController alloc] initWithNibName:@"AddAlbum" bundle:[NSBundle mainBundle]];
    UIView* tempView = addAlbumViewController.view;
    NSLog(@"Test Switch: %@",addAlbumViewController.photostreamSwitch); // no longer null
    [addAlbumViewController release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...