iOS Swift Xcode 故事板中视图控制器委托的 6 个关注点分离
iOS Swift Xcode 6 separation of concerns for view controller delegates in storyboards
我在学习 iOS 开发和 Swift 的过程中获得了很多乐趣,但对此有些烦恼。
我正在编写一个包含一堆控件的视图,而我的 UIViewController 由于它必须支持的所有委托协议而变得有点臃肿。所以我想分出一些代表团来分开classes。但是似乎没有任何方法可以将视图控件连接到情节提要中分开的 classes?
示例:我有:
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource{
...code...
}
通过将连接器拖动到情节提要中视图顶部边缘的 ViewController 东西,很容易将选择器视图连接到此,如下所示:
现在我有:
class ViewController: UIViewController{
...code...
}
并在单独的文件中:
class PickerHandler: UIPickerViewDelegate, UIPickerViewDataSource{
...code...
}
但是,我无法将选取器视图的委托连接器拖到此 class,那么如何连接委托?
快速回答:喜欢 snowman4415。
Swift推荐方式:
class ViewController: UIViewController {
...code...
}
extension ViewController: UIPickerViewDelegate {
}
extension ViewController: UIPickerViewDataSource {
}
您可以将这些扩展放在任何您想要的地方。没有必要为此制作另一个 class,假设您只是不想让 class 变得太大。
此外,还有其他情况需要像您一样制作另一个 class,但它需要更多的工作,例如当您必须编写额外的 protocol
以便从 [= 委托时12=]回到ViewController
(因为你不能直接在PickerHandler
class中调用ViewController
的实例)
我在学习 iOS 开发和 Swift 的过程中获得了很多乐趣,但对此有些烦恼。
我正在编写一个包含一堆控件的视图,而我的 UIViewController 由于它必须支持的所有委托协议而变得有点臃肿。所以我想分出一些代表团来分开classes。但是似乎没有任何方法可以将视图控件连接到情节提要中分开的 classes?
示例:我有:
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource{
...code...
}
通过将连接器拖动到情节提要中视图顶部边缘的 ViewController 东西,很容易将选择器视图连接到此,如下所示:
现在我有:
class ViewController: UIViewController{
...code...
}
并在单独的文件中:
class PickerHandler: UIPickerViewDelegate, UIPickerViewDataSource{
...code...
}
但是,我无法将选取器视图的委托连接器拖到此 class,那么如何连接委托?
快速回答:喜欢 snowman4415。
Swift推荐方式:
class ViewController: UIViewController {
...code...
}
extension ViewController: UIPickerViewDelegate {
}
extension ViewController: UIPickerViewDataSource {
}
您可以将这些扩展放在任何您想要的地方。没有必要为此制作另一个 class,假设您只是不想让 class 变得太大。
此外,还有其他情况需要像您一样制作另一个 class,但它需要更多的工作,例如当您必须编写额外的 protocol
以便从 [= 委托时12=]回到ViewController
(因为你不能直接在PickerHandler
class中调用ViewController
的实例)