2014-12-14 2 views
0

Я ищу более быстрый метод для создания моего приложения. Поскольку у меня есть серия кнопок, которые собираются открыть UIWebView. Но я хочу иметь возможность использовать только One (1) WebView. Я также хочу иметь кнопки в другом контроллере View.Несколько UIButtons для одного WebView

Итак, мой вопрос: как бы вы получили кнопки для перехода от одного контроллера вида к другому контроллеру представления, который имеет в нем веб-просмотрщик и все еще может получать различные веб-ссылки для загрузки с кнопок?

Я до сих пор новичок в программировании сообщества. Я делаю это все как самостоятельное обучение.

Спасибо, ребята!

+0

Я пересмотрел свой вопрос. –

+0

Могу ли я удалить «Удержание»? –

+0

У вас есть веб-представление в том же контроллере, что и кнопки. Это то, что вы хотите? –

ответ

1

Создать один XIB, который будет содержать одну UIWebView и кнопки и в целевом методе кнопок, вы задаете новый URL будут перезагрузить Webview

Как упомянуто ниже

-(void)reloadWebVieWithUrl:(NSString *)strUrl 
{ 
    NSURL *url = [NSURL URLWithString:strUrl]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [self.wbView loadRequest:request]; 
} 

- (IBAction)buttonAction:(UIButton *)sender { 
    NSString *url = @""; 

    switch (sender.tag) { 
     case 100: 
     { 
      url = @"https://www.google.co.in/"; 
      break; 
     } 
     case 101: 
     { 
      url = @"https://in.yahoo.com/"; 

      break; 
     } 
     case 102: 
     { 
      url = @"https://www.facebook.com/"; 

      break; 
     } 
     case 103: 
     { 
      url = @"http://stackoverflow.com/"; 

      break; 
     } 

     default: 
      break; 
    } 

    [self reloadWebVieWithUrl:url]; 
} 

В Swift

import UIKit 
import WebKit 

class ViewController: UIViewController { 

    @IBOutlet var wbView: UIWebView! 
    var strUrl = "" 

    @IBAction func buttonAction(sender: UIButton) { 

     switch (sender.tag){ 
     case 100: 
      strUrl = "https://www.google.co.in/" 

     case 101: 
      strUrl = "https://in.yahoo.com/" 

     case 102: 
      strUrl = "https://www.facebook.com/" 

     case 103: 
      strUrl = "http://stackoverflow.com/" 

     default: 
      break; 
     } 

     reloadWebViewWithUrl(strUrl); 
    } 

    func reloadWebViewWithUrl(strUrl: NSString){ 
     var url = NSURL(string: strUrl); 
     var request = NSURLRequest(URL: url); 

     wbView.loadRequest(request); 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 
+0

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

+0

Janmenjaya, я делаю то, что вы мне сказали, но теперь он выдает сообщение об ошибке «Ожидаемое заявление». Что бы это было? –

+0

@ AllenSchuenke, Извините, я не знаю, быстро, чтобы определить вашу проблему. Но я думаю, вы делаете что-то неправильно в объявлении переменной или свойств. Перейдите по этой ссылке, это может помочь вам http: // stackoverflow.com/questions/24479700/expected-declaration-error-create-array-in-viewcontroller-can not-work-out-why – Janmenjaya

0

Для этого вам не нужно несколько веб-просмотров или VC.

Вы можете просто изменить NSURL, чтобы отобразить веб-сайт, на который вы хотите ориентироваться.

Так, например, действие для кнопки один может быть:

NSString *webSite = "@http://google.com"; 
NSURL *url = [NSURL URLWithString:webSite]; 
NSURLRequest *request = [NSUrLRequest requestWithURL:url]; 

[webView loadRequest:request]; 

Тогда для кнопки два - использовать один и тот же код, используя один и тот же WebView и просто изменить строку на сайт вы хотите, чтобы перейти к пользователю к.

Надеюсь, это поможет.

+0

Мне нравится простота того, что вы мне прислали. Мне просто интересно, как вы вложили бы это в полный код! –

Смежные вопросы