使用按钮在点击时显示新视图,而不使用Segue?

时间:2017-01-11 12:24:24

标签: ios swift uiviewcontroller uibutton segue

我正在开发一个多页宣传册应用程序,并使用segues加入页面。我已经达到了20页左右,而且segue系统看起来很乱。

我在ViewController中以编程方式创建了一个按钮。我只是想让该按钮始终链接到不同的视图,无论它在哪个页面上。 这意味着我不必画数百次的segues!

class ViewController: UIViewController {

override func viewDidLoad() {
    let button:UIButton = UIButton(frame: CGRect(x: 25, y: 50, width: 250, height: 75))
    button.backgroundColor = .black
    button.setTitle("", for: .normal)
    button.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside)
    self.view.addSubview(button)
}

func buttonClicked() {
    print("Button Clicked")
}

我找不到任何允许我这样做的代码,所以我想知道它是否可能。

感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

我假设您想以编程方式显示另一个页面而不使用segue。这是示例代码。

let storyboard: UIStoryboard = UIStoryboard(name: "yourStoryboardName", bundle: nil)
let vc: UIViewController = storyboard.instantiateViewControllerWithIdentifier("YoourViewControllerStoryBoardID") as UIViewController
self.present(vc, animated: true, completion: nil)

每次调用时,此方法都会创建指定视图控制器的新实例。

如果你已经有一个指向viewController的指针,只需显示它。

答案 1 :(得分:1)

我认为做这样的事情的最好方法是使用PageViewController。 它会自动添加滑动手势和... 有完整的教程here

一些演示:

enter image description here

答案 2 :(得分:0)

好的,这就是我的理解,你想在按下按钮时切换ViewControllers。

  

对于ViewController,您也希望它也是Seque,将Signupvc添加到右侧自定义类下面的“Storyboard ID”。

@IBAction func differentSequeAction(sender: AnyObject)
 {

    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let SignUp: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "Signupvc")

    self.present(SignUp, animated: true, completion: nil)

 }