XCode: перезагрузить новое представление для экземпляра контроллера представления - PullRequest
1 голос
/ 30 марта 2012

Итак, мой делегат приложения обрабатывает некоторые вещи из fblogin, и когда он возвращается после входа в систему, мои контроллеры представления не подключены. Я полагаю, потому что AppDelegate инициализирует новый контроллер представления без установки имени пера ... но я не знаю, как это сделать с раскадровкой. Помогите!

Пожалуйста, будь проще, я все еще новичок.

Кроме того, дайте мне знать, какой код я могу предоставить, чтобы помочь.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Я подумал, что мне нужно добавить больше информации, чтобы понять это. Итак, из моего контроллера представления я создаю экземпляр делегата приложения. Делегат приложения содержит экземпляр объекта facebook. Из контроллера представления я вызываю [[appDelegateInst facebook] authorize:permissions];, который запускает диалог авторизации для facebook (в новом окне). Экземпляр делегата приложения facebook инициализируется так:

 vc = [[ViewController alloc] init];
    facebook = [[Facebook alloc] initWithAppId:@"309362365798188" andDelegate:vc];

Итак, контроллер представления сообщает экземпляру делегата приложения, что нужно авторизоваться (авторизоваться) для своего экземпляра facebook. Делегатом для этого экземпляра facebook является экземпляр viewcontroller (vc). Когда вызов auth возвращает управление приложению, вызывается метод делегата fbDidLogin() (который находится внутри класса viewcontroller). В этом методе мне нужно вручную вызывать viewDidLoad, потому что все мои переменные экземпляра теперь нулевые ... Возможно, я только что ответил на свой вопрос .. Я создал экземпляр viewcontroller, но никогда не загружал представление .. поэтому, когда я возвращаюсь, я я сейчас "внутри" экземпляра контроллера представления appdelegate, но пытаюсь подключиться к представлению предыдущего экземпляра, который теперь находится на странице .. это верно? Если это так, как я могу это исправить:)

-Josh

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Я понял это!Ура для меня!Поэтому вместо использования нового экземпляра контроллера представления в моем приложении appdelegate я реализовал это:

-(void) doFBLoginStuff:(id)oldView
{
    facebook = [[Facebook alloc] initWithAppId:@"309362365798188" andDelegate:oldView];
    [facebook authorize:nil];
}

И вызвал это из моего исходного контроллера представления с помощью [appDelegateInst doFBLoginStuff: self];

0 голосов
/ 30 марта 2012

Раскадровки и перья (.xib) в основном взаимоисключающие.Обычная вещь для раскадровки - это то, что какой-то контроллер помечен как начальный, и в начале он представлен полумагически :)Затем viewDidLoad: метод этого контроллера вызывается как часть запуска приложения, и в этот момент ваши выходы должны быть действительными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...