2012年6月6日 星期三

使用 Segue 傳送選取的 Table Cell 內容到下一個 View


最近接了一個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}


收工。

沒有留言: