2012-03-30 146 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)。當身份驗證呼叫將控制權交還給應用程序時,將調用代理方法fbDidLogin()(它位於viewcontroller類中)。在那個方法中,我必須手動調用viewDidLoad,因爲我的所有實例變量現在都是空的......我可能只是回答了我自己的問題..我創建了一個viewcontroller的實例,但從未加載視圖..所以,當我返回I '現在'在'appdelegate視圖控制器實例中,但試圖連接到現在在頁面上的前一個實例的視圖..是嗎?如果是這樣,我怎麼解決它:)

-Josh

回答

0

故事板和碎粒(的.xib)大多是相互排斥的。一個故事板的正常情況是,一些控制器被標記爲最初的一個,並且在開始時它以半神奇的方式呈現。然後,該控制器的viewDidLoad:方法將作爲應用程序啓動的一部分進行調用,並且此時您的網點應該是有效的。

+0

hmmmn。然後,我只是感到困惑,並且在如何調試方面感到不知所措。當我NSLog我的UITableView例如(預登錄)它說 JoshDG 2012-03-30 15:27:04

+0

如果你註釋掉「lgging in」的東西,那麼viewDidLoad中的插口是否可以使用? (這將驗證故事板連接是否設置正確。)另外,是否登錄到新的視圖控制器,如果是,它是故事板的一部分嗎? – 2012-03-30 15:34:37

+0

是的,一切正常工作之前登錄..我可以更改按鈕文本和扔東西在表中。我不完全確定登錄是如何工作的..它打開瀏覽器或其他東西然後返回..不是故事板的一部分......它只是facebook sdk api的一部分......然後我認爲它是雙手控制的到應用程序。 – JoshDG 2012-03-30 15:58:00

0

我想通了!萬歲!因此,而不是在我的appdelegate使用視圖控制器的新實例,我實現了這個:

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

,稱那是從[appDelegateInst doFBLoginStuff:自我]我原來的視圖控制器;

+0

恭喜! :-)(我不會對Facebook特有的任何幫助。) – 2012-03-30 22:14:20