强制移动到新的视图控制器(没有 segue)
Posted
技术标签:
【中文标题】强制移动到新的视图控制器(没有 segue)【英文标题】:Force Move to a new view controller (without segue) 【发布时间】:2017-05-18 03:30:16 【问题描述】:我正在使用 swift 3 在 xcode 上制作应用程序,并且正在使该应用程序具有多个变量。我希望我的应用程序在某个变量处于某个值时进行测试,无论您在什么视图上,都移动到新的视图控制器。我知道我可以使用 segues,但是有很多观点,这会变得混乱。有什么我可以使用的只是使用代码或者更简单的东西。 谢谢
【问题讨论】:
你的变量的值在什么条件下和变量的值对于所有的viewControllers保持不变? 是的,变量将相同并在所有视图中更新 【参考方案1】:您可以使用属性的didSet
并显示视图控制器。
class TestVC : UIViewController
var variable: Int = 10
didSet
if variable == 20
present(someVC, animated: true)
class SomeVC : UIViewController
func didFinishWhatever()
dismiss(animated: true)
【讨论】:
当我尝试将视图控制器名称放在当前位中的代码时,它显示“无法将'TestViewController.type'类型的值转换为预期的参数类型'UIViewController'”【参考方案2】:您可以在UIViewController
中创建一个extension
,并在其中每当您的变量值发生变化时,只需推送/呈现您所需的ViewController
。
【讨论】:
【参考方案3】:如果您使用故事板,请尝试以下代码行:
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewController = storyboard.instantiateViewControllerWithIdentifier("SomeVCIdentifier")
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
【讨论】:
以上是关于强制移动到新的视图控制器(没有 segue)的主要内容,如果未能解决你的问题,请参考以下文章