我正在开发一个多页宣传册应用程序,并使用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")
}
我找不到任何允许我这样做的代码,所以我想知道它是否可能。
感谢任何帮助。
答案 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)
答案 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)
}