在没有导航控制器的情况下以编程方式更改视图控制器 Swift

Programmatically changing View Controllers without Navigation Controller Swift

我想在不使用导航控制器的情况下按下按钮时切换到新的视图控制器,但我似乎无法做到这一点。我到处寻找答案,但我发现的所有内容要么在 objective-c 中,要么使用导航控制器,要么根本不工作。

func gunsoutButtonPressed(sender:UIButton!) {
    print("yay\t")
    //let encounterVC:AnyObject! = self.storyboard?.instantiateViewControllerWithIdentifier("ecounterViewController")
    //self.showViewController(encounterVC as UIViewController, sender: encounterVC)
    let encounterViewController = self.storyboard.instantiateViewControllerWithIdentifier("encounterViewController") as encounterViewController
    self.pushViewController(encounterViewController, animated: true)
}

您必须连接您要使用的两个 ViewController。然后根据需要命名 segue,然后使用以下代码触发 segue(在 IBAction 或其他内容中)。它不是完全以编程方式,但您可以以编程方式触发它们,这应该足够了。

performSegueWithIdentifier("mySegue", sender: nil)

查看 this video 以获得支持。

希望这对您有所帮助:)

没有 UINavigationController 就不能使用推送转场。您可以使用模态转场来实现此目的,例如:

self.presentViewController(encounterViewController, animated: true, completion: nil)

继续

所以您使用 Segue ID 来确保您正确地进行 segue。

没有续集

我建议改为这样做:

let vc = ViewControllerToSegueTo()
self.presentViewController(vc, animated: true, completion: nil)

如果不想用storyboard的话稍微好一点