最近接了一個iOS的軟體開發專案,
由於是 obj-c 的初心者,在開發上難免會遇上一些看似很簡單但是卻又不知如何解決問題
分享一下剛剛遇上的問題解法,
我先從server上先要了一份資料清單回來後,將這份清單使用 UITableView 呈現列表,
然後將使用者點選的 UITableViewCell上的內容,傳送到下一個 VIEW(有拉 Segue)
依照以前使用其他語言的經驗,直覺應該是使用者選取的動作,這個事件會被先觸發,而後才是有關 Segue 的事件觸發
因此先在 tableView : didSelectRowAtIndexPath 的事件中,先記錄好使用者選取的內容
再透過 prepareForSegue 事件傳送內容到下一個VIEW
事實上,Segue prepareForSegue 會早於 tableView : didSelectRowAtIndexPath 被觸發
問題來了,我要怎樣在 Segue prepareForSegue 的事件內,知道使用者是選了第幾個選項?
01 | - ( void )prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender |
02 | { |
03 | id target = segue.destinationViewController; |
04 | //使用者選取那一筆資料 |
05 | NSIndexPath *path = [self.tableView indexPathForSelectedRow]; |
06 | //從server 下載回來的資料,放在一個 NSMutableArray 中,透過path.row可以取得內容 |
07 | NSString *rowValue = [serverList objectAtIndex:path.row]; |
08 | //Title 是VIEW內的定義好的變數 |
09 | [target setValue:rowValue forKey:@ "Title" ]; |
10 | } |
收工。
沒有留言:
張貼留言