2016-04-22 14 views
0

私は最初にiOSアプリを書いています。Swiftを使用していますが、UIButtonには開始/一時停止機能があります。 Startをタップすると、画像はUIWebViewにロードされ、テキストがPauseに変更されます。一時停止をタップすると、webViewのロードが停止します。私は、次のアプローチにUButtonの起動/停止を内部で実装する

@IBOutlet weak var startPauseButton: UIButton! 

    @IBAction func startPauseButtonAction(sender: UIButton) { 

     if startPauseButton!.currentTitle == "Start"{ 

      if let htmlURL = NSBundle.mainBundle().pathForResource("index", ofType: "html"){ 
       // let htmlURL = NSBundle.mainBundle().URLForResource("index", withExtension: "html") 
       let requestURL = NSURL(string: htmlURL) 
       let requestObject = NSURLRequest(URL: requestURL!) 
       webView.sizeToFit() 
       webView.loadRequest(requestObject) 
      }else{ 
       let url = NSBundle.mainBundle().URLForResource("video", withExtension: "html") 
       let requestObject = NSURLRequest(URL:url!); 
       webView.loadRequest(requestObject) 
      } 

      startPauseButton.setTitle("Pause", forState: UIControlState.Normal) 
     }else{ 
      webView.stopLoading() 
      startPauseButton.setTitle("Start", forState: UIControlState.Normal) 
     } 


    } 

を使用しています。しかし、このコードは一時停止するには、開始とその逆のテキストを変更している。

私が観察した

@IBOutlet weak var startPauseButton: UIButton! 

    @IBAction func startPauseButtonAction(sender: UIButton) { 

     // if startPauseButton!.currentTitle == "Start"{ 

      if let htmlURL = NSBundle.mainBundle().pathForResource("index", ofType: "html"){ 
       // let htmlURL = NSBundle.mainBundle().URLForResource("index", withExtension: "html") 
       let requestURL = NSURL(string: htmlURL) 
       let requestObject = NSURLRequest(URL: requestURL!) 
       webView.sizeToFit() 
       webView.loadRequest(requestObject) 
      }else{ 
       let url = NSBundle.mainBundle().URLForResource("video", withExtension: "html") 
       let requestObject = NSURLRequest(URL:url!); 
       webView.loadRequest(requestObject) 
      } 

      startPauseButton.setTitle("Pause", forState: UIControlState.Normal) 
    /* }else{ 
      webView.stopLoading() 
      startPauseButton.setTitle("Start", forState: UIControlState.Normal) 
     } 
*/ 

    } 

、ボタンの第2のタップに、ビューはwebViewにロードされている、コードの下に実行されるとwebView

上のリソースをロードすることができません。この2番目のタブイベントを克服して最初のタブに変更し、この機能を実現するにはどうすればよいですか?このstackoverflowのスレッドで説明したように、次の

@IBAction func startPauseButtonAction(sender: UIButton) { 
     println("button has been tapped \(startPauseButton!.titleForState(.Normal))") 
    // if startPauseButton!.titleForState(.Normal) == "Start" { 
      if let htmlURL = NSBundle.mainBundle().URLForResource("index", withExtension: "html") { 
       let requestObject = NSURLRequest(URL: htmlURL) 
       webView.sizeToFit() 
       webView.loadRequest(requestObject) 
      }else{ 
       let url = NSBundle.mainBundle().URLForResource("video", withExtension: "html") 
       let requestObject = NSURLRequest(URL:url!); 
       webView.loadRequest(requestObject) 
      } 

      startPauseButton.setTitle("Pause", forState: UIControlState.Normal) 
    /* }else{ 
      webView.stopLoading() 
      startPauseButton.setTitle("Start", forState: UIControlState.Normal) 
     }*/ 
    } 

を実行する上で

EDIT 1

出力 button has been tapped Optional("Start") button has been tapped Optional("Pause")//here the webview is getting loaded button has been tapped Optional("Pause") button has been tapped Optional("Pause")

+0

万が一、 'htmlURL'または' url'を 'nil'にすることはできますか? – ozgur

+0

@ozgurはい、可能です – onkar

答えて

関連する問題