2013-04-08 80 views
2

如這裏建議「https://developer.foursquare.com/overview/auth」我得到的訪問令牌在網頁視圖,然後我通過獲取的accessToken後關閉瀏覽器:Foursquare的API的UIWebView

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    NSString *URLString = [[self.webView.request URL] absoluteString]; 
    NSLog(@"--> %@", URLString); 
    if ([URLString rangeOfString:@"access_token="].location != NSNotFound) { 
     NSString *accessToken = [[URLString componentsSeparatedByString:@"="] lastObject]; 
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     [defaults setObject:accessToken forKey:@"access_token"]; 
     [defaults synchronize]; 
     [self.webView removeFromSuperview]; 

    } 

} 

一個類似的例子「https://github.com/anoopr/core-data-talk/blob/master/example/Classes/FoursquareAuthViewController.m

但一旦我刪除了網絡視圖,我就會看到一個黑屏。這是有道理的,因爲我沒有視圖了。但我可能應該做一些像[self.view addSubview:self.Anotherview],我不知道Anotherview應該是什麼。我可以繼續使用另一個ViewController嗎?

我對IOS很新,所以任何幫助將不勝感激。

回答

2

從視圖中刪除UIWebView後,您可以隨意放置任何內容。例如,如果您只想顯示地圖,則可以添加地圖視圖,或者更容易,如果使用界面構建器,則可以在頂部顯示地圖視圖和Web視圖,並且移除Web視圖將會離開你與地圖視圖。但是,如果你在web視圖的視圖控制器(你放置web視圖的視圖控制器)上有什麼與獲得訪問令牌後你試圖實現的內容無關,最簡單的方法就是將訪問令牌存儲在某個地方else(例如App委託類)執行segue到另一個視圖控制器,並從那裏使用該令牌來滿足您的任何需要。你甚至不需要處理從超級視圖中刪除網頁視圖,你已經離開了視圖控制器並繼續到另一個視圖控制器。特別是,當你是初學者時,只要你可以使用storyboard,segues和NIB,與他們一起,嘗試在界面生成器中以可視化方式做東西,而不是試圖去除/添加視圖/視圖控制器(是的,也有可能)內的代碼。