Я программирую приложение Какао и хочу, чтобы приложение работало как своего рода мастер. Итак, в главном окне у меня есть настраиваемое представление, которое взаимодействует с пользователем и переключается с экрана входа на экран активации устройства по мере прохождения этапов мастера. В настоящее время я переопределил метод awakeFromNib WizardViewController:
- (void)awakeFromNib{
//If no redirect request save, add first view: ID Login
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *tokenRequest = [defaults objectForKey:@"redirectRequestToken"];
if (!tokenRequest){
SignInWithIDViewController *signInViewController = [[SignInWithIDViewController alloc] initWithNibName:@"SignInWithIDViewController" bundle:nil];
[wizardView addSubview:[signInViewController view]];
} else {
NSLog(@"Have already logged in.");
}
}
Как есть, initWithNibName в SignInIDViewController вызывается дважды, один раз явно мной и еще раз при загрузке представления (предположительно через loadView). Однако, если я просто вызываю init, тогда имя initWithNib вызывается только один раз, но загружается неправильный файл xib (из класса DeviceActivationViewController). Кажется, я не могу понять, что я делаю неправильно, потому что signInViewController не должен запускаться дважды, но мне нужен правильный файл xib в IB для отображения.
Единственный другой метод, который у меня есть в этом классе в настоящее время, который не является IBAction пользовательского интерфейса, - это сгенерированный метод initWithNibName плюс добавленный оператор NSLog.
code
- (id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil {self = [super initWithNibName: nibName]; if (self) {// Здесь код инициализации. } return self; } Поэтому я добавил NSLog, чтобы отслеживать это. Это также влияет на функциональность других методов, а именно, мой awakeFromNib вызывается дважды в двух разных экземплярах, которые я знаю, потому что каждый экземпляр открывает сервер на другом порту. - person Katie   schedule 31.05.2012code
if (! Self.window) [NSBundle loadNibNamed: @WizardViewController owner: self]; [self.window makeKeyAndOrderFront: сам]; Я добавил объекты (кубы) в каждый файл xib, сделал их подклассами их контроллеров и установил выходные соединения с этими объектами. Что-то не так? Обычно, если я пытаюсь подключиться с помощью владельца файла, у меня возникают проблемы с подключениями действий. - person Katie   schedule 01.06.2012