对所有按钮使用一个ViewController xcode

问题描述:

我正在用Front按钮创建一个应用程序。现在我不想为每个按钮创建ViewController,因为我有30个按钮,我必须创建30个视图控制器。我想要的只是当我点击第一个按钮时。 开放 wahstatus.com 的第二个按钮 wahstatus.com/ws/punjabi-funny-status对所有按钮使用一个ViewController xcode

这样的事情,因为我在Android应用

if (id == R.id.button1) { 

     WebView myWebView = (WebView) findViewById(R.id.webview); 
     myWebView.loadUrl("http://m.punjabidharti.com/pd/punjabi/"); 
     WebSettings webSettings = myWebView.getSettings(); 

     webSettings.setJavaScriptEnabled(true); 

    } else if (id == R.id.button2) { 

     WebView myWebView = (WebView) findViewById(R.id.webview); 
     myWebView.loadUrl("http://m.punjabidharti.com/pd/punjabi/funny-punjabi/"); 
     WebSettings webSettings = myWebView.getSettings(); 

     webSettings.setJavaScriptEnabled(true); 

已实行的是在Xcode中有可能?谢谢

+0

您可以创建自定义视图并在每个视图控制器中使用它 – Jageen

+0

子类UIViewController。 –

+0

@ElTomato它无关,与子类的UIViewController – OhadM

如果你用你的按钮所做的只是打开URL,你甚至不需要创建你自己的视图控制器。我建议你使用SFSafariViewController,这很容易呈现。

首先添加的Safari浏览器服务框架到您的项目,并添加到您的VC的顶部,所有按钮:

import SafariServices 

然后你就可以导航到这样的小方法的Safari浏览器视图控制器:

func presentSafariVC(for url: URL) { 
    let safariVC = SFSafariViewController(url: urlString) 
    present(safariVC, animated: true) 
} 
+0

我如何切换网址到另一个? –

+0

我不确定你的意思?你的意思是每个按钮按下不同的网址? – BJHStudios

+0

是的,当我点击按钮1,wahstatus.com –

看来你误解的UIViewController含义:

一视图控制器管理构成应用程序用户界面一部分的一组视图

您不会为每个按钮创建UIViewController。如果你的按钮是复杂而复杂的,你可以创建一个NIB文件,其中包含一个相应的.m和.h文件(或者.Swift文件),这个文件是UIView的子类。然后使用这个解决方案,你可以将你的NIB文件(这是UIView的一个子类)添加到你想要的任何UIViewController - 或任何UIView。

如果你的按钮很简单,你需要的是处理所有的水龙头(使用responder chain)一个IBAction为方法还可以。只需打开您的Storyboard并将所有按钮(使用Ctrl +拖动)连接到单一的IBAction方法。

+0

有没有更多的.m和.h文件与斯威夫特:) – nyg

+0

@nyg代码语法看起来像Objective-C - 他写的在定义实例名称之前还要键入if语句的括号。更新答案.. – OhadM

+0

事实上这不是斯威夫特,但我认为这是Java代码他说,“这样的事情,因为我在Android应用程序已经实现了。” – nyg