【问题标题】:How to return from webview to rootview in iOS?如何在 iOS 中从 webview 返回到 rootview?
【发布时间】: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中实现导航栏,请告诉我怎么做?

标签: iphone objective-c ios webview barcode-scanner


【解决方案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】:

您不必实现导航栏。
您已经创建了一个包含您的UIWebViewUIViewController,然后您必须通过调用[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
猜你喜欢
  • 2017-05-12
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
  • 2023-04-01
  • 2019-06-02
相关资源
最近更新 更多