从一个tabBar跳转到另一个tabBar页面,但是无法点击跳转到第一个tabBar页面
时间: 2023-11-29 22:07:05 浏览: 152
这个问题可能是因为你在第一个tabBar的页面上调用了`tabBarController?.selectedIndex`来跳转到第二个tabBar的页面,但是这个方法只会改变tabBar的选中项,并不会触发tabBar的点击事件。因此,当你想要从第二个tabBar跳转回第一个tabBar时,第一个tabBar的页面并没有被点击,导致无法响应跳转事件。
解决方法是,在第一个tabBar的页面上,不要直接调用`tabBarController?.selectedIndex`,而是使用`tabBarController?.selectedViewController`来获取当前选中的视图控制器,然后再在该视图控制器中调用跳转方法。这样就能保证页面能够正常响应跳转事件了。
相关问题
从一个tabBar跳转到另一个tabBar页面,但是无法点击跳转到第一个tabBar页面,具体代码实现
假设你要从第一个 tabBar 页面跳转到第二个 tabBar 页面,然后在第二个 tabBar 页面中,你需要能够点击跳转回第一个 tabBar 页面。这里给出一个简单的实现方式:
在第一个 tabBar 页面中,添加一个按钮,当用户点击该按钮时,触发跳转到第二个 tabBar 页面的操作,具体代码如下:
```
// 在第一个 tabBar 页面的某个 ViewController 中添加一个按钮
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
button.setTitle("跳转到第二个tabBar", for: .normal)
button.addTarget(self, action: #selector(goToSecondTabBar), for: .touchUpInside)
view.addSubview(button)
// 实现跳转到第二个 tabBar 页面的方法
@objc func goToSecondTabBar() {
if let tabBarController = self.tabBarController {
tabBarController.selectedIndex = 1 // 切换到第二个 tabBar 页面
}
}
```
在第二个 tabBar 页面中,添加一个按钮,当用户点击该按钮时,触发跳转回第一个 tabBar 页面的操作,具体代码如下:
```
// 在第二个 tabBar 页面的某个 ViewController 中添加一个按钮
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 50))
button.setTitle("跳转回第一个tabBar", for: .normal)
button.addTarget(self, action: #selector(goToFirstTabBar), for: .touchUpInside)
view.addSubview(button)
// 实现跳转回第一个 tabBar 页面的方法
@objc func goToFirstTabBar() {
if let tabBarController = self.tabBarController {
tabBarController.selectedIndex = 0 // 切换回第一个 tabBar 页面
}
}
```
这样就可以在第一个 tabBar 页面和第二个 tabBar 页面之间来回跳转了,并且可以在第二个 tabBar 页面中点击按钮跳转回第一个 tabBar 页面。
uniapp从tabbar跳转到非tabbar
页面该如何实现?
对于这种情况,可以使用uni-app提供的switchTab和redirectTo方法进行页面跳转。
如果从tabBar页面跳转到非tabbar页面,可以使用redirectTo方法:
```
uni.redirectTo({
url: '/pages/otherPage/otherPage'
})
```
如果需要回到tabBar页面,可以在目标页面中使用switchTab方法:
```
uni.switchTab({
url: '/pages/tabBarPage/tabBarPage'
})
```
需要注意的是,redirectTo方法会关闭当前页面并跳转到目标页面,而switchTab方法会切换到目标tabBar页面,如果目标页面不在tabBar中,则会跳转失败。另外,uni-app还提供了navigateTo、reLaunch等页面跳转方法,可以根据具体需要进行选择。
阅读全文