swift-设计到界面结合代码的学习

2017-01-19  本文已影响73人  lotawei

1.为每个单独的界面建立一个单独的storyboard虽然storyboard很早就出来了但是貌似在多人协同开发时体现的并不是很友好,storyboard使用这种方式可以快速看到清晰的流程,便于我们把控业务的流程。而且在做界面效果可以节约很大的时间.绕开那些烦人的布局,第三方约束布局库吧!

2.storyboard文件与相关的ViewController subclass使用相同的名称,那样会更清晰,也防止出错.

let storyboard = UIStoryboard(name: "HomeViewController", bundle: nil)
let homeViewController = storyboard.instantiateViewController(withIdentifier: “HomeViewController”)  as?  HomeViewController

在此基础上都可以在分类的ViewController 建立一个static 静态快速获取的类 可以参照

class HomeViewController: UIViewController {
static func storyboardInstance() -> HomeViewController? { 
   let storyboard = UIStoryboard(name: String.className(self), 
                                       bundle: nil)//这样就能使用这种方式来避免各种类名写错等行为了 
  return 
         storyboard.instantiateInitialViewController() as?   
                                                 HomeViewController 
                         }
}

使用起来就统一的可以这样

 let homeViewController = HomeViewController.StoryBoardInstance()

类似nib的方式可以如法炮制

class LoginView: UIView {
      static func nibInstance() -> LoginView? {
        if let loginView =  
              Bundle.mainBundle.loadNibNamed(String.className(self),
                               owner: nil, options: nil)?.first as? 
                               LoginView { 
              return loginView
        } 
        return nil 
     }
}

3.少用segue,界面跳转直接用添加时间的方式对其跳转
4.涉及到界面跨层次跳转的,尽量自己用nav的方式,不用segue的方式去跳转

 if let nvc = navigationController {   
          nvc.popViewController(animated: true)
      } else { 
// otherwise, dismiss it
      dismiss(animated: true, completion: nil)  
   }
上一篇 下一篇

猜你喜欢

热点阅读