StoryboardID 和 StoryboardSegueIdentifier 之间的区别
Difference between StoryboardID and StoryboardSegueIdentifier
我们可以使用 segueIdentifiers 从 mainViewController
移动到 detailViewController
。示例:
performSegueWithIdentifier("toDetailViewController", sender: self)
我们还可以使用 StoryboardID 从故事板手动创建 detailViewController
,然后从 mainViewController
推送或呈现。示例:
let detailViewController: UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("detailViewController") as UIViewController
self.present(detailViewController)
我的问题是:这些方法有什么区别?他们似乎在做同样的事情。
不同的是,一个是通过故事板完成的(你可以看到segue箭头),另一个是通过编程完成的。这就像你问在 swift 中编程 UI 和使用故事板编程有什么区别一样。
在第一种情况下,您甚至不必调用 performSegueWithIdentifier
,您可以将 segue 绑定到情节提要中的按钮,因此仅使用情节提要而无需任何 swift 代码。
虽然有很多文章都在讨论情节提要,但我真的建议您看一下 this one,从不同的角度来看它。
他们都引用了故事板相关的标识符。主要区别在于一个 performSegueWithIdentifier
基于 segue 和 where the segue points to
实例化一个对象,而另一个 instantiateViewControllerWithIdentifier
基于 Viewcontroller 标识符实例化一个唯一的 Viewcontroller (不是继续)。
故事板中的不同位置可以有多个具有相同标识符的转场,而故事板中的 Viewcontroller 不能有相同的标识符。
我们可以使用 segueIdentifiers 从 mainViewController
移动到 detailViewController
。示例:
performSegueWithIdentifier("toDetailViewController", sender: self)
我们还可以使用 StoryboardID 从故事板手动创建 detailViewController
,然后从 mainViewController
推送或呈现。示例:
let detailViewController: UIViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("detailViewController") as UIViewController
self.present(detailViewController)
我的问题是:这些方法有什么区别?他们似乎在做同样的事情。
不同的是,一个是通过故事板完成的(你可以看到segue箭头),另一个是通过编程完成的。这就像你问在 swift 中编程 UI 和使用故事板编程有什么区别一样。
在第一种情况下,您甚至不必调用 performSegueWithIdentifier
,您可以将 segue 绑定到情节提要中的按钮,因此仅使用情节提要而无需任何 swift 代码。
虽然有很多文章都在讨论情节提要,但我真的建议您看一下 this one,从不同的角度来看它。
他们都引用了故事板相关的标识符。主要区别在于一个 performSegueWithIdentifier
基于 segue 和 where the segue points to
实例化一个对象,而另一个 instantiateViewControllerWithIdentifier
基于 Viewcontroller 标识符实例化一个唯一的 Viewcontroller (不是继续)。
故事板中的不同位置可以有多个具有相同标识符的转场,而故事板中的 Viewcontroller 不能有相同的标识符。