2015-06-05 4 views
0

В моем проекте есть два контроллера вида. Контроллер начального представления имеет три кнопки (viewController1). Второй контроллер просмотра имеет веб-просмотр (viewController2). Я установил настоящее как popover segue из viewController1 в viewController2. Я хотел бы, чтобы каждая кнопка открывала определенную веб-страницу в веб-просмотре, когда происходит переход (когда я нажимаю одну кнопку, веб-просмотр сместится на одном веб-сайте. Если я нажму другую кнопку, веб-просмотр сместится с другим заранее определенным сайтом.)xcode 6 - swift - передача строки через popover segue

Как передать предопределенный веб-сайт для просмотраController2?

мой код до сих пор:

// viewController1 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if (segue.identifier == "webViewPopover") { 
     let webviewVC:WebviewViewController = segue.destinationViewController as WebviewViewController 
     webviewVC.receivedURL = "http://www.apple.com" //test string 
     } 
    } 


// viewController2 
var receivedURL:String! 

    @IBOutlet var webView: UIWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let myURL = NSURL (string: receivedURL) 
     let request = NSURLRequest(URL: myURL!) 
     webView.loadRequest(request) 
    } 

ответ

0

Просто так, как вы это сделали.

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

Более совершенный метод, который я использовал (вероятно, слишком много сейчас), заключается в том, чтобы обернуть закрытие объекта, передать это как отправитель и получить агностик-метод подготовкиForSegue, чтобы проверить отправителя и отправить метод. Однако для ваших нужд перейдите с API Apple - что вы делаете, просто подайте ему локальную строковую переменную, кэшированную нажатием кнопки.

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