【问题标题】:How would I create back, forward, and refresh buttons for a UIWebView programmatically?如何以编程方式为 UIWebView 创建后退、前进和刷新按钮?
【发布时间】:2010-09-03 20:34:23
【问题描述】:

我目前创建了一个 webview,但我不想使用界面生成器来创建后退、前进和刷新按钮。我将如何以编程方式创建这些按钮?我知道如何使用代码创建常规按钮,但是对于 webView 委托按钮,我迷失了方向,无法在上面找到很多资源。

【问题讨论】:

    标签: iphone xcode uiwebview


    【解决方案1】:

    来自UIWebView 文档:

    如果您允许用户在网页历史记录中前后移动,那么您可以使用goBackgoForward 方法作为按钮的操作。当用户无法向某个方向移动时,使用canGoBackcanGoForward 属性禁用按钮。

    然后设置按钮将使用addTarget:action:forControlEvents:(正如Sven 所指出的那样):

    [myBackButton addTarget:myWebView
                     action:@selector(goBack)
           forControlEvents:UIControlEventTouchDown];
    

    如果您想根据canGoBackcanGoForward 属性获得花哨并启用/禁用按钮,则必须在UIController 中添加一些KVO 通知。

    【讨论】:

    【解决方案2】:

    您需要使用addTarget:action:forControlEvents: 为您的网络视图设置按钮的目标和操作。

    【讨论】:

      【解决方案3】:

      要启用/禁用后退或前进按钮而不是使用KVO,我们可以使用以下“hack

      - (void)webViewDidFinishLoad:(UIWebView *)webView
      {
      
          if ([webView canGoBack])
              [backbutton setEnabled:YES];
          else
              [backbutton setEnabled:NO];
      
          if ([webView canGoForward])
              [fwdbutton setEnabled:YES];
          else
              [fwdbutton setEnabled:NO];
      }
      

      【讨论】:

        【解决方案4】:

        启用或禁用按钮的更简单方法是:

        - (void)webViewDidFinishLoad:(UIWebView *)webView
        {
           [backButton setEnabled:webView.canGoBack];
           [fwdButton setEnabled:webView.canGoForward];
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多