【发布时间】:2020-06-11 08:25:46
【问题描述】:
我正在尝试跟踪之前在 sideMenu 中选择的 tableview 行索引。
【问题讨论】:
-
使用一个变量来跟踪 tableView 的选定索引。这可以在 didselect 方法中完成
标签: ios objective-c iphone swift5
我正在尝试跟踪之前在 sideMenu 中选择的 tableview 行索引。
【问题讨论】:
标签: ios objective-c iphone swift5
var previousSelectedIndex = 0
var currentSelectedIndex = 0 {
didSet {
print("===>current", currentSelectedIndex)
print("===>previous", previousSelectedIndex)
}
willSet {
previousSelectedIndex = self.currentSelectedIndex
}
解释:didSet 和 willSet 是 swift 中的属性 Observer didset 用于获取 variable 的当前值,而 will set 用于获取 variable 的先前值。 如果您想了解有关 propertyObserver 的更多详细信息,请参阅此链接 https://medium.com/the-andela-way/property-observers-didset-and-willset-in-swift-4-c3730f26b1e9
【讨论】:
这是一个简单可靠的解决方案。使用willSet 属性观察器来跟踪变量的先前值。
var previousSelectedIndex: IndexPath?
var selectedIndex: IndexPath? {
willSet {
previousValue = selectedIndex
}
}
使用selectedIndex 变量来跟踪您可以从didSelect 委托中获取的当前选定索引。
【讨论】: