Con*_*rry 4 arrays uipageviewcontroller swift
我试图确保中间值 Lists 是构建我的应用程序时看到的第一个视图。Xcode 提供if let firstView = viewList.first,if let firstView = viewList.last但我无法练习如何选择中间值。
lazy var viewList:[UIViewController] = {
let sb = UIStoryboard(name: "Main", bundle: nil)
let lists = sb.instantiateViewController(withIdentifier: "Lists")
let reminders = sb.instantiateViewController(withIdentifier: "Reminders")
let todo = sb.instantiateViewController(withIdentifier: "To Do")
return [reminders, lists, todo]
}()
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
if let firstView = viewList.first {
self.setViewControllers([firstView], direction: .forward, animated: true, completion: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
与firstand类似last,您可以Array使用middle返回一个 optional的计算属性进行扩展Element。
extension Array {
var middle: Element? {
guard count != 0 else { return nil }
let middleIndex = (count > 1 ? count - 1 : count) / 2
return self[middleIndex]
}
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
if let middleView = viewList.middle {
//... Do something
}
Run Code Online (Sandbox Code Playgroud)
我希望您知道,如果数组只有 1 个元素first,则last可以返回相同的元素。
类似地,虽然此扩展适用于任何数组长度,但它可以返回相同的元素:
first, middle&last如果您的数组只有 1 个元素middle&last如果您的数组只有 2 个元素| 归档时间: |
|
| 查看次数: |
3677 次 |
| 最近记录: |