2015-12-01 4 views
0

Я новичок в iOS. Попытка реализовать навигационную панель для моего UIWebView.Навигационная панель для UIWebView

My TableView вызывает веб-просмотр, когда пользователь нажимает на любую строку. Я загружаю разные локальные HTML-файлы на основе щелчка индекса. Мой веб-просмотр загружается правильно, но проблема в том, что я хочу сохранить навигационную панель и кнопку < back там, чтобы пользователь мог щелкнуть ее, чтобы вернуться к представлению таблицы.

Вот мой ProductTableViewController:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cellIdentifier = "ProductTableViewCell" 


    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! ProductTableViewCell 

    let product = products[indexPath.row] 

    cell.name.text = product.name 
    cell.generic.text = product.generic 

    return cell 
} 


override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    if let resultController = storyboard!.instantiateViewControllerWithIdentifier("webView") as? WebViewController { 
     presentViewController(resultController, animated: true, completion: nil) 
    } 

    //print(indexPath.row) 
    clickedOn = indexPath.row 
} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let svc = segue.destinationViewController as! WebViewController; 
    //if clickedOn == 3{ 
     svc.fileName = "Ace-VetBolus" 
    //} 
} 

И мой WebViewController:

override func viewDidLoad() { 
    //print("got: "+self.fileName) 

    let url = NSBundle.mainBundle().URLForResource(self.fileName, withExtension:"html") 
    let request = NSURLRequest(URL: url!) 

    web1.loadRequest(request) 
} 

Пожалуйста, помогите мне написать Swift код для этого.

+0

сделал встраивать навигационный контроллер в WebViewController –

+0

No. Я пытался, но WebView не загружался или я, возможно, не смог настроить должным образом. –

ответ

0

Если вы представляя WebViewController на ProductTableViewController, и хотите иметь бар кнопки на панели навигации, я хотел бы предложить вам встроить WebViewController в UINavigationController в IB.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let navc = segue.destinationViewController as! UINavigationController; 
    let svc = navc.topViewController as! WebViewController; 
    //if clickedOn == 3{ 
     svc.fileName = "Ace-VetBolus" 
    //} 
} 

Будет ли небольшое изменение в prepareForSegue методе.

Кнопка «Назад» на панели должна быть добавлена ​​вручную.

0

замените ваш didSelectRowAtIndexPath следующим, он работает для меня.

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
     if let resultController = storyboard!.instantiateViewControllerWithIdentifier("webView") as? WebViewController { 
      let navController : UINavigationController = UINavigationController (rootViewController: resultController) 
      self.navigationController?.presentViewController(navController, animated: true, completion: nil) 
     } 

     //print(indexPath.row) 
     clickedOn = indexPath.row 
    }