iT邦幫忙

DAY 20
1

Swift - 從菜菜鳥到菜鳥的 30 天系列 第 20

[Swift-d20] - Basic - 捨棄 Storyboard 使用純程式碼 的方式撰寫 ViewController

  • 分享至 

  • xImage
  •  

小弟的規劃表 - http://blog.kerkerj.in/blog/2014/11/01/planning/

好讀版 - http://blog.kerkerj.in/blog/2014/10/20/swift-d20/

今天專案的 Github link

其實哦

寫 Swift 也有幾個禮拜了

我一直覺得使用 Interface Builder 的確很方便

但是在程式面與視覺面之間的溝通常常會漏東漏西的

比方說如果要設定 reusable identifier 時

除了程式裡面的字串要設定以外,還要再到 storyboard 裡設定同樣的字串

一個簡單的小程式可能不超過 20 個 View 的情況下

還可以這樣做,當程式長得非常大的時候,好像就很難注意到這件事,

而且 View 太多 storyboard 就會開始變慢....

因此今天要來試著在 Swift 中

如何不用 Storyboard,來打造我們的程式

(當然 xib/nib 還是會用到,只是我們單純捨棄 storyboard,用程式來控制流程)

首先,一樣先建立一個測試專案

接著我們要動到的程式碼是 AppDelegate.swift:

編輯它:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var viewController: ViewController?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        self.viewController = ViewController()
        self.viewController?.view.backgroundColor = UIColor.redColor()

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        self.window?.backgroundColor = UIColor.whiteColor()

        self.window?.rootViewController = viewController
        self.window?.makeKeyAndVisible()

        return true
    }

其實這段程式碼,就是在做 storyboard 的 「進入點」 這件事

var viewController: ViewController?

我們用專案建立時產生的 ViewController 建立了一個物件

並在 application launch 的時候,將該 ViewController 建立起來,設定他的背景顏色為紅色

self.viewController = ViewController()
self.viewController?.view.backgroundColor = UIColor.redColor()

另外對 window 做一些設定

self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        self.window?.backgroundColor = UIColor.whiteColor()

設定他 Screen 大小 (根據手機解析度而定) 並設定 window 的背景顏色為白色

接著是最重要的設定:

self.window?.rootViewController = viewController
self.window?.makeKeyAndVisible()

我們要讓 viewController 指定為是這個 window 的 rootViewController

並且 makeKeyAndVisible

這樣就完成手動設定進入點的程式了

再來我們就可以大膽一點,把 Storyboard 砍掉啦!

接著執行程式,就可以看到一片紅色了!!!

是不是很簡單!

如果要 NavigationController 也可以直接設定!

接下來的實戰開發專案就會以不使用 Storyboard 的方式開發

增加程式碼可讀性 :P

老是貼圖也很累 XDDDD

接下來就要用 Swift 寫一個 TODOList APP 囉!

並且實際接上隔壁棚的 Restful API XD


上一篇
[Swift-d19] - Basic - 橋接第三方 Objc Library - Reachability and Bridge.h
下一篇
[Swift-d21] - 實戰開發 - TODOList - 前置設定
系列文
Swift - 從菜菜鳥到菜鳥的 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言