Swift-所选选项卡栏索引未触发向上滚动
我有一个包含五个项目的选项卡栏,我正在尝试添加一个功能,以便在用户再次点击选项卡栏项目时滚动到顶部。将Swift-所选选项卡栏索引未触发向上滚动,swift,uitabbarcontroller,Swift,Uitabbarcontroller,我有一个包含五个项目的选项卡栏,我正在尝试添加一个功能,以便在用户再次点击选项卡栏项目时滚动到顶部。将uitabarcontrollerdelegate添加到要触发事件的视图中,并创建了一个函数来确定所选的选项卡栏索引 当我打开应用程序时,索引0会自动选择,并且工作正常。当我向下滚动并点击选项卡栏索引时,视图自动滚动到顶部。当我转到索引1并在那里触发滚动时,问题就出现了。它以某种方式完全删除了我的第一个选项卡栏项目的自动滚动 在没有自动滚动的情况下选择其他选项卡栏项目不会影响索引0 主页(索引0
uitabarcontrollerdelegate
添加到要触发事件的视图中,并创建了一个函数来确定所选的选项卡栏索引
当我打开应用程序时,索引0会自动选择,并且工作正常。当我向下滚动并点击选项卡栏索引时,视图自动滚动到顶部。当我转到索引1并在那里触发滚动时,问题就出现了。它以某种方式完全删除了我的第一个选项卡栏项目的自动滚动
在没有自动滚动的情况下选择其他选项卡栏项目不会影响索引0
主页(索引0)
用户(索引1)
任何具有
delegate
属性的对象在任何给定时间只能分配一个委托。最近设置的委托
将接收下一个委托方法调用
在您的情况下,您可能可以在每个视图控制器的viewdide
方法中将选项卡控制器的delegate
重置为self
,因为您希望当前可见的视图控制器是当前选项卡控制器委托
将以下内容添加到每个需要成为选项卡控制器委托的视图控制器:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.tabBarController?.delegate = self
}
任何具有
delegate
属性的对象在任何给定时间只能分配一个委托。最近设置的委托
将接收下一个委托方法调用
在您的情况下,您可能可以在每个视图控制器的viewdide
方法中将选项卡控制器的delegate
重置为self
,因为您希望当前可见的视图控制器是当前选项卡控制器委托
将以下内容添加到每个需要成为选项卡控制器委托的视图控制器:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.tabBarController?.delegate = self
}
UITabBarController
只能有一个委托。最后一个赢了,真的!那么,如何将自动滚动添加到两个不同的选项卡栏项目?一个UITabBarController
只能有一个委托。最后一个赢了,真的!那么,我怎样才能将自动滚动添加到两个不同的选项卡栏项目中呢?
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.tabBarController?.delegate = self
}