Как вернуться из веб-просмотра в rootview в iOS? - PullRequest
1 голос
/ 25 марта 2012

Я новичок в мире программирования iOS и Objective C. Я пытаюсь создать приложение, которое будет сканировать штрих-код, а затем использовать эти данные для перехода на веб-сайт.

Теперь, единственная проблема - когда я загружаю сайт с помощью веб-просмотра, я не знаю, как вернуться к 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]; 
}

Как добавить кнопку назад в веб-просмотр, чтобы я мог вернуться к основному виду?

Ответы [ 2 ]

2 голосов
/ 25 марта 2012

Здесь у вас есть учебник по реализации панели инструментов с UIWebView:

http://iosdeveloperzone.com/2011/05/21/tutorial-building-a-web-browser-with-uiwebview-part-1/

1 голос
/ 25 марта 2012

Вам не нужно реализовывать панель навигации.
Вы создали UIViewController, который содержит ваш UIWebView, затем вы должны поместить этот контроллер в стек вашего текущего UINavigationCotroller, вызвав [self.navigationController pushViewController:yourVC animated:YES];, затем, как сказал @mientus, вызвать [self.navigationController popToRootViewControllerAnimated:YES];, чтобы вернуться к корневому контроллеру представления.
Поэтому в этом случае я предлагаю вам начать новый проект Master-Detail Application.

Если вы не хотите этого делать, в вашем случае просто установите тег для вашего веб-представления и добавьте UIB-кнопку с таким действием:

-(IBAction)removeWebView:(id)sender{
  [[self.view viewWithTag:yourWebViewTAG] removeFromSuperView];
}
...