2013-04-08 63 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,与他们一起,尝试在界面生成器中以可视化方式做东西,而不是试图去除/添加视图/视图控制器(是的,也有可能)内的代码。