如何在 iOS 中从 webview 返回到 rootview?
Posted
技术标签:
【中文标题】如何在 iOS 中从 webview 返回到 rootview?【英文标题】:How to return from webview to rootview in iOS? 【发布时间】:2012-03-25 08:55:25 【问题描述】:我是 ios 和 Objective C 编程世界的新手。我正在尝试创建一个应用程序来扫描条形码,然后使用该数据访问网站。
现在,唯一的问题是当我使用 webview 加载网站时,我不知道如何返回到 mainview/rootview。因为,我已经把它做成了一个基于视图的应用程序,我不知道如何实现导航控制器或者只是一个后退按钮。
我用过这个SDK:http://zbar.sourceforge.net/iphone/sdkdoc/
代码:
- (void) imagePickerController: (UIImagePickerController*) reader
didFinishPickingMediaWithInfo: (NSDictionary*) info
// ADD: get the decode results
id<NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
// EXAMPLE: just grab the first barcode
break;
// EXAMPLE: do something useful with the barcode data
resultText.text = symbol.data;
CGRect webFrame = CGRectMake(0.0, 0.0, 320.0, 460.0);
UIWebView *webView= [[UIWebView alloc] initWithFrame:webFrame];
[webView setBackgroundColor:[UIColor whiteColor]];
NSString *urlAddress= @"http://www.flipkart.com/search/a/books?query=";
urlAddress =[urlAddress stringByAppendingString:resultText.text];
NSURL *url= [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj= [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
[self.view addSubview:webView];
// [webView release];
/*
// ADD: dismiss the controller (NB dismiss from the *reader*!)
[reader dismissModalViewControllerAnimated: YES];
如何在 webview 中添加后退按钮以便返回主视图?
【问题讨论】:
为什么不能在导航栏上添加返回按钮?还是特定于要求? 如果你使用navigationcontroller你必须调用:[self.navigationController popToRootViewControllerAnimated:YES]; 如何实现导航栏,在webview中 如果你使用 navigationController 你可以在界面生成器中设置属性或者你可以在代码中显示它:[[self navigationController] setNavigationBarHidden:NO animated:YES]; 如何在webview中实现导航栏,请告诉我怎么做? 【参考方案1】:这里有如何使用 UIWebView 实现工具栏的教程:
http://iosdeveloperzone.com/2011/05/21/tutorial-building-a-web-browser-with-uiwebview-part-1/
【讨论】:
Milo widziec ze jestes aktywny brahu :) 干得好 +1 :) Dzięki, a tak jakoś ostatnio pomagałem ludziom z nudów i zaczalem prowadzic bloga o ios, bo bardzo malo materialow jest po polsku ;)【参考方案2】:您不必实现导航栏。
您已经创建了一个包含您的UIWebView
的UIViewController
,然后您必须通过调用[self.navigationController pushViewController:yourVC animated:YES];
将此控制器放入您当前的UINavigationCotroller 的堆栈中,然后正如@mientus 所说,调用[self.navigationController popToRootViewControllerAnimated:YES];
以返回根视图控制器。
所以在这种情况下,我建议你开始一个新的 Master-Detail Application 项目。
如果您不想这样做,在您的情况下,只需为您的 webView 设置一个标签并添加一个 UIButton ,其操作如下:
-(IBAction)removeWebView:(id)sender
[[self.view viewWithTag:yourWebViewTAG] removeFromSuperView];
【讨论】:
在我编写的上述代码中,我将如何向我在 ViewController 中创建的 webview 添加标签,以及如何以编程方式在 webView 中添加后退按钮,然后使用您的 removeWebView 方法。请说我需要做什么编辑,ViewController.m的完整代码cl.ly/FJ0R以上是关于如何在 iOS 中从 webview 返回到 rootview?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中从 NSData 显示 PDF - 如何将 PDF 保存到文档文件夹 Swift - 如何在 Swift 中通过 WebView 从保存的 NSData 显示 PDF
在webview中单击按钮后,如何在android应用程序中从webview打开外部应用程序?