您当前的位置: 首页 > 

iKinds:我是如何一步步重构改造项目从单VC到多VC界面(下)

发布时间:2016-11-17 09:27:50 ,浏览量:0

上一篇中我们快速验证了原型的功能可以实现,接下来就是稍微放慢前进的步伐,来收拾一下之前快速开发时写的稍显蹩脚难看的代码了.

为了让大家还有印象,我把最后修改的方法完整显示如下:

override func tableView(_ tableView:UITableView, didSelectRowAt indexPath:IndexPath) {
    tableView.deselectRow(at: indexPath, animated:true)

    centerViewController.menuItem = MenuItem.sharedItems[(indexPath as NSIndexPath).row]

    let containerVC = parent as! ContainerViewController

    if indexPath.row == 1{
        containerVC.addKsVC.view.frame = containerVC.centerViewController.view.frame containerVC.centerViewController.view.isHidden = true
        containerVC.centerViewController = containerVC.addKsVC containerVC.addKsVC.view.isHidden = false
    }else{
        containerVC.centerViewController.view.isHidden = true
        containerVC.centerViewController = containerVC.orgCenterVC containerVC.orgCenterVC.view.isHidden = false
    }

    containerVC.toggleSideMenu()
  }

如君所见,在方法中用一个if语句看起来并不是神马好主意.为了从根本上解决我们还得回到ContainerVC里去!

打开ContainerViewController.swift注释掉之前和addKsVC相关的所有代码,现在我们需要完成所有菜单项对应VC的处理,所以有必要写一个初始化方法,将所有内容VC的初始化放在其中,当然目前只有addKsVC一个控制器需要初始化,其他所有的仍使用同一个VC:

func initContentVCs(){
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let addKsVC = storyboard.instantiateViewController(withIdentifier: "AddKsVC")

        addChildViewController(addKsVC)
        view.addSubview(addKsVC.view)
        addKsVC.view.isHidden = true
        addKsVC.didMove(toParentViewController: self)

        if orgCenterVC != nil{
            contentVCs = [UIViewController]()
            let count = MenuItem.sharedItems.count for _ in 0..            
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.1412s