转到另一个故事板 Swift
Posted
技术标签:
【中文标题】转到另一个故事板 Swift【英文标题】:Segue to Another Storyboard Swift 【发布时间】:2016-07-20 17:22:55 【问题描述】:我试图以编程方式切换到另一个故事板,但每次我尝试加载一个没有内容的黑屏视图时。
这是我一直在使用的代码:
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let startingView = storyboard.instantiateViewControllerWithIdentifier("HomeScreenView")
self.showViewController(startingView, sender: self)
我已经在目的地故事板的起源故事板上创建了参考,并且还尝试调用:
performSegueWithIdentifier("changeover", sender: self)
任何想法和建议将不胜感激。
【问题讨论】:
转到情节提要是错误的。您只能在情节提要中的控制器之间切换。 我正在尝试转到情节提要,我使用了情节提要参考。 如果您使用 swift 3 到present
和 viewController
,我认为您需要使用 presentViewController
或 present(viewControllerToPresent: )
。
【参考方案1】:
我在使用带有 segue 的 Storyboard References 时没有遇到任何问题。以下是我为其工作所遵循的步骤:
1) 在带有源视图控制器的情节提要中,将情节提要引用拖到画布上。
2) 在属性检查器中设置引用指向正确的故事板名称和视图控制器
3) Ctrl+从源的视图控制器图标(在场景的顶部栏中)拖动到情节提要参考以创建转场。
4) 将 segue 设置为“Show”,并在属性检查器中为其指定标识符“Test”
5) 在您的源视图控制器的代码中,在您希望触发它的适当位置,添加以下行:
performSegueWithIdentifier("Test", sender: self)
这应该就是以编程方式调用 segue 所需的一切!
【讨论】:
2) 在属性检查器中设置引用指向正确的故事板名称和视图控制器 let storyboard = UIStoryboard(name: "Main", bundle: nil) let controller = storyboard.instantiateViewControllerWithIdentifier("PageViewController") as UIViewController presentViewController(controller, animated: false, completion: nil)跨度> 我收到一条错误消息,提示“ViewController 没有带有标识符‘Test’的segue。另一个故事板被命名为“Extras”,而我想从中显示的视图控制器场景被称为“Test”。 【参考方案2】:“MyStoryBoard”这是你想去的故事板名称 “StoryboardId”这是我想在 segue 之后显示的控制器 ID。
let storyboard = UIStoryboard(name: "Service", bundle: nil)
let myVC = storyboard.instantiateViewController(withIdentifier: "ProfileTimelineVC") as! ProfileTimelineVC
self.present(myVC, animated: true, completion: nil)
【讨论】:
【参考方案3】:在 AppDelegate 中追加 var 窗口:UIWindow?
let storyboard = UIStoryboard(name: "Registration", bundle: nil)
let registrationvc = storyboard.instantiateViewController(withIdentifier:
"RegistrationViewController") as! RegistrationViewController
self.window?.rootViewController?.present(registrationvc, animated: true,
completion: nil)
【讨论】:
以上是关于转到另一个故事板 Swift的主要内容,如果未能解决你的问题,请参考以下文章