2

正如这里所建议的“ https://developer.foursquare.com/overview/auth ”,我在 webview 中获取访问令牌,然后在获取访问令牌后关闭浏览器:

- (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

但是一旦我删除了 webview,我就会得到一个黑屏。这是有道理的,因为我不再有观点了。但我可能应该做一些类似 [self.view addSubview:self.Anotherview] 的事情,我不确定另一个视图应该是什么。我可以继续使用另一个 ViewController 吗?

我对IOS很新,所以任何帮助都会非常感激。

4

1 回答 1

2

从视图中删除 UIWebView 后,您可以放置​​任何您想要的东西。例如,如果你只想显示一张地图,你可以添加一个地图视图,或者更简单,如果你使用界面构建器,你可以在顶部有一个地图视图和一个 web 视图,删除 web 视图将离开你与地图视图。但是,如果您在 Web 视图的视图控制器(您放置 Web 视图的视图控制器)上拥有的内容与您在获得访问令牌后试图实现的目标无关,那么最干净的方法就是将访问令牌存储在某处否则(例如 App 委托类)执行到另一个视图控制器的 segue,并从那里使用令牌来满足您的需要。您甚至不需要处理从超级视图中删除 Web 视图,您已经离开该视图控制器并继续使用另一个视图控制器。尤其,

于 2013-04-08T00:56:18.893 回答