presentModalViewController Проблема - PullRequest
       10

presentModalViewController Проблема

0 голосов
/ 30 декабря 2010

Я пишу приложение для iPhone, которое вам нужно аутентифицировать в начале. Поэтому, как только приложение загружается в viewDidLoad, я выделяю UIViewController, который отвечает за регистрацию и аутентификацию, и я представляю его так:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.registerProfile = [[[RegisterViewController alloc] initWithNibName:@"RegisterProfile" bundle:nil] autorelease];
    [self presentModalViewController:self.registerProfile animated:YES];
    [self.registerProfile release];
 }

По какой-то причине он не работает при вызове из viewDidLoad. Но если я создаю кнопку в этом представлении и добавляю тот же код выше, когда я нажимаю на нее, это работает, и представление представлено.

Есть идеи, почему он не работает с viewDidLoad и с кнопкой работает?

Я также протестировал пример Apple под названием NavBar. Когда кнопка нажата, она представляет представление с использованием presentModalViewController, когда я добавлял его в ViewDidLoad, он не работал!

Что мне здесь не хватает? Я хочу, чтобы этот процесс происходил автоматически при загрузке представления, а не нажатием кнопки.

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 января 2011

После игры и поиска в глубокой паутине я нашел решение. Поместите тот же код в viewDidAppear , а не в viewDidLoad, поскольку представление еще не может быть инициализировано.

0 голосов
/ 30 декабря 2010

У меня есть код, который почти такой же, как и выше, и он отлично работает. Попробуйте сделать это:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.registerProfile = [[[RegisterViewController alloc] initWithNibName:@"RegisterProfile" bundle:nil] autorelease];
    registerProfile.delegate = self; //set delegate as yourself
    [self presentModalViewController:self.registerProfile animated:YES];
    //[self.registerProfile release]; //don't worry about releasing it, it's been autoreleased.
 }
...