全栈开发

swift侧滑实现

2019-08-22  本文已影响0人  MichaelDing
  1. 首先,我们创建两个控制器,一个为HomeViewController根导航控制器,一个为LeftViewController侧滑控制器
    侧滑控制器用于跳转到各个子视图控制器


    Simulator Screen Shot - iPhone X - 2019-08-20 at 13.41.15.png
  2. 侧滑跳转主要是通过swift中的block实现,首先我们在在LeftViewController中定义一个block:
    代码如下;
  let dataSourceArr = ["新闻","体育","生活"]
  let iconArr = ["childIcon","recordIcon","mineIcon"]
  var tableViewSelectIndexPath = {(vc:UIViewController) -> Void in}

其次首页控制器HomeViewController根导航控制器左上角有个按钮,当点击这个按钮的时候我们以模态跳转的方式进入LeftViewController,代码如下:

let leftVC = LeftViewController()
leftVC.tableViewSelectIndexPath = {(vc:UIViewController) -> Void in
            self.navigationController?.pushViewController(vc, animated: true)
        }
self.present(leftVC, animated: false, completion: nil)

在LeftViewController中点击tableView 的cell的时候我们调用预先定义的block,同时回调控制器到首页控制器,
代码如下:

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        self.dismiss(animated: false, completion: nil)
        var vc:UIViewController!
        switch indexPath.row {
        case 0:
            vc = FirstViewController()
            break
        case 1:
              vc = SecondViewController()
            break
        case 2:
            vc = ThirdViewController()
            break
        default:
            break
        }
        self.tableViewSelectIndexPath(vc)

    }

最后通过首页控制器的导航功能进行跳转,代码如下:

 let leftVC = LeftViewController()
        leftVC.tableViewSelectIndexPath = {(vc:UIViewController) -> Void in
            self.navigationController?.pushViewController(vc, animated: true)
        }
 self.present(leftVC, animated: false, completion: nil)

有问题反馈

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

觉得我写的不错,欢迎留言与打赏,金额随意,喝杯小茶,让我知道我的努力有价值,你的留言与打赏就是最好的反馈,让我更有动力继续分享。

上一篇下一篇

猜你喜欢

热点阅读