2012-03-30 2 views
1

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

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

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

ДОПОЛНИТЕЛЬНО:

Я понял, что мне нужно, чтобы добавить больше информации, чтобы помочь понять это. ОК, поэтому изнутри контроллера просмотра я создаю экземпляр делегата приложения. Делегат приложения содержит экземпляр объекта 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, потому что все мои переменные экземпляра теперь null ... Возможно, я просто ответил на свой вопрос .. Я создал экземпляр viewcontroller, но никогда не загружал представление ... и когда я возвращаюсь I 'm now' in 'экземпляр контроллера appdelegate view, но пытается подключиться к представлению предыдущего экземпляра, который теперь находится на странице .. это правильно? Если да, то как я могу это исправить :)

-Josh

ответ

0

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

+0

Хммм. Тогда я просто смущен и не понимаю, как отлаживать. Когда я NSLog мой UITableView, например (pre-login), он говорит JoshDG

+0

Если вы прокомментируете материал «lgging in», то есть ли выходы OK в viewDidLoad? (Это будет проверять правильность настроек раскадровки.) Кроме того, вход в новый контроллер просмотра и, если это так, является частью раскадровки? –

+0

Да, все работает отлично до входа в систему. Я могу менять текст кнопок и бросать вещи в таблицу. Я не совсем уверен, как работает логин. Он открывает браузер или что-то тогда возвращает ... не часть доски истории ... ее просто часть facebook sdk api ... а потом я думаю, что она управляет контролем к приложению. – JoshDG

0

Я понял! Ура для меня! Таким образом, вместо того, чтобы использовать новый экземпляр контроллера представления в моем AppDelegate я реализовал это:

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

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

+0

Поздравляем! :-) (я не собираюсь помогать никому, что связано с Facebook). –

Смежные вопросы