發表文章

IOS開發筆記__回傳函數 / 匿名函數 / 匿名方法( block / callback )

圖片
回傳函數 block 這個block的功能像是一個打包盒,可以把很多要執行的程式碼包在一個方法裡面, 而這個方法名子不是物件,因此我們可以透過這個 block 來把它包起來 block的表示使方式如下 ^{  //要做的程式碼寫在這裡面   } 例如下面程式碼:

IOS開發筆記__屬性清單Property List

圖片
這一篇內容會提到屬性清單Property List 要把資料放到plist文字檔案裡面(縮寫是plist) 用開新資料夾的方式來新增一個 .plist 的清單(全名是 Property List) 而這個 Property List 是個容器,裡面有兩種型別,分別是Array & Dictionary 那接下來我可以在這個資料夾裡建立之後要呈現的內容 在到ViewDidLoad 把要做的事情寫上去,讀取data  檔案的 plist 然後再把路的資料讀取成陣列, 然後這裡一樣要記得PickerView 簽署協定必寫的兩個方法,寫要幾個欄幾個列,還有把文字呈現出來!(這樣就完成 下面可以滾的選單了) 最後就是要把剛剛我們在 Property List 裡面寫的內容部份給呈現出來 筆記: 單例模式( singlention ),表示物件只會被初始化一次,整個執行結束只會拿到一個物件 NSUserDefaults,這個也是單例模式,小的微型資料庫(約500K) UIScreen 這個也是單例模式,拿到使用者螢幕尺寸 ## 單例模式只會被初始化一次,所以不可以自己打 alloc init NSBundle這個類別有打包的意思 而下面這一句話是指,我要拿那一份打包檔案 不可以自己打 alloc init , 因為這樣打是產生物件

IOS開發筆記__ UIPickerView

圖片
UIPicker 建立在委派模式上 PickerView 主要有兩個區塊,一個是欄component@ 另一個是列row (沒有限制可以有多少個欄和列,而這個欄列的數量是由程式碼完成的) PickerView --- >Controller  之間要建立兩個通道一個是Delegate另一個是DataSource。 而PickerView --- >Controller  是Delegate  (這個通道主要是回報目前被選的狀態) 而PickerView --- >Controller  透過 DataSource 問Controller 要呈現什麼  (而這個是PickerView餵資料給Controller) 因此我們先建立通道以下兩個通道 因為有兩個通道,所以要簽兩個協定,而一個類別能簽的協定數量沒有限制! 在簽署協定之後會出現驚嘆號,告訴你有兩個必須要寫的協定實作內容! 判斷方式是缺寫什麼內容 用command去按PickerViewDataSource 會看到 @require @end 之間必須寫的兩個方法 (各語言中的require 中的內容都是必須做的) 接下來把這兩個必須要寫的內容加上去,然後就可以完成了 這個是PickerView裡面的其他功能之一,可以知道使用者滑到哪個欄哪個列 筆記: Date Picker 是全球都一樣的格式,所以無法制定內容 PickerView 有內建高度 小技巧! 當看到# 的這段內容,是寫給前置編譯器看的內容, 在畫面上方可以快速跳到想去的方法裡面 整體流程是,先把我們需要的PickView建構出來,看需要幾個欄和幾個列,在程式碼中來呈現!接下來在建立兩個通道,一個回傳狀態另一個回傳資料。 而在這兩個簽署的協定中有必須做的協定內容,其中一個呈現讓畫面呈現有幾欄,另外一個讓畫面呈現有幾列! 在文字內容的部分用陣列來呈現,這樣他取出的數字,即可以直接使用

IOS開發筆記_設計模式 (文字框縮鍵盤)

圖片
在IOS中有幾項重要的設計模式 委派模式 (Delegate) 單例模式 (Singleton) 觀測者模式 (Observer ) 通知模式 (Notification ) MVC設計模式  註:近期還有一個MVVM ( Model View ViewModel) 其中最重要的是, 委派模式 (Delegate) 而MVC模式通常會和委派模式 (Delegate)一起使用! 一般的MVC模式中會是以下兩個通道通道的建立 Controller --->View(建立IBOutlet) View --->Controller (建立IBAction) 而在加入委派模式 (Delegate)後會 再多兩個“單向通道”! View --->Controller (建立Delegate , 這裡是回報 狀態的改變 ) View --->Controller (建立DataSource) 在View --->Controller 之間有三個通道可以選擇,但是這個 不是可以隨意選擇 ,因為一開始就有設定好什麼元件走什麼通道!(例如:UIButton只能夠走IBAction) 委派模式:意思類似,我有秘書,而我讓秘書去幫我做事情 View 把任務委派給 Controller 完成 接下來我們要透過這個委派模式,讓我們在點選文字框使用後讓文字框回傳狀態,可以有縮鍵盤的功能! 首先我們先建立text的和ViewController通道,一樣式按住control拉線過去ViewController 接下跑出來的小框選擇 delegate ,後會有個白色小點表示已連結成功! 然後我們要在@interface與@end之間 簽署 協定(Protocol) 在ViewController 後面加上 < UITextFieldDelegate > 只要寫了這一段話,ViewController就看得懂delegate內部的八種方法,以下是內建的八種方法 換句話說ViewController簽...

IOS開發筆記__透過程式碼回到上一頁!

圖片
我們要透過程式碼來,回到上一頁!那麼第一個步驟也是先建立IBAction然後認識一個新的API文件 dismissViewControllerAnimated 這時候第一個參數會問是否要帶動畫,而第二個值會問做完之後要做什麼事 這時候我們就完成,透過程式碼回到上一頁了!

IOS學習筆記__前進下一頁並帶入文字(用程式碼完成)!

圖片
這一篇要用程式碼來讓畫面跳轉至下一個新的頁面,在這之前也可以先回顧 IOS開發筆記_ 換頁的方法(不用寫程式碼) 來對照比較。 首先我們要幫第二頁取名,慣例取名會和取和類別名一樣,這樣也比較好管理 接下來幫第一頁的按鈕做一個 IBAction instantiateViewControllerWithIdentifier 物件化這個ViewController用Identifier 然後顯示下一頁的視圖控制器 sender: 這個部分可以填 self 或是 nil  然後接下來要把文字帶給第二頁,一樣是先拿到使用者輸入的文字,將這文字帶給下一頁的視圖控制器 完整程式碼如;name 是我們之前設定的那個NSString* name; 這樣我們就完成透過程式碼,把第一頁的文字帶到第二頁呈現! 筆記: 上一篇文章,把文字帶給下一頁上一個方法是透過preparForSegue這個方法把文字內容過去,而這個用程式碼來完成的方法則要透過按鈕的IBAction來完成

IOS開發筆記__體驗生命週期!

圖片
       經過上一篇生命週期的筆記,那麼我們可以透過程式碼的撰寫來,按下畫面後從debug的畫面來看整個變化。 我們可以透過以下程式碼來看到這個生命週期的變化(程式碼的順序沒影響) 在第二頁的部分也要加上 這時後當我們執行畫面時會看到 然後按第二頁的時候,可以再繼續看到這些生命週期的變化 那麼我們也以從這個畫面跳轉的過程中,清楚知道之前所提及,有些不只會被呼叫一次的案例。(當我們在不同頁面轉跳時,部分地方就會被反覆的呼叫) 筆記: 這篇內容主要是記錄,前面所提及的生命週期部份,用程式碼來跑一次能更加深流程印象 ViewDidAppear觸發的時候,是當使用者看到畫面時 才被觸發