2012-11-30 74 views

回答

4

將數據傳遞迴另一個控制器的正常方法是使用delegate協議。帶按鈕的控制器將執行放置在表視圖控制器的.h文件中的@protocol聲明中聲明的協議方法。在tableView:didSelectRowAtIndexPath:方法中,您可以調用委託方法,傳遞單擊單元格的值。

+0

我的問題仍然存在..你可以給我你的電子郵件ID,我可以發送代碼給你,因爲我沒有使用協議,然後它看起來很難 –

+0

@VivekSehrawat,我的電子郵件是[email protected]。當答案沒有給你足夠的信息時,正確的答案是要求澄清,而不是不接受它。 – rdelmar

0

rdelmar是正確的,最簡單的方法可能是使用委託協議並將選定的值傳遞迴先前的視圖。

-

然而,假設你想存儲表視圖和選擇器之外這個值,你可以創建一個單獨或NSUserDefaults的使用,以避免是傳遞的價值和潛在的失去某些東西。如果這個tableview/picker在設置菜單或類似的東西中,那就是我會做的。

的要點請參閱此: http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/

0

對代表團的某些代碼;您的tableview類中的一個協議:
@protocol SelectionDelegate <NSObject> -(void)setSelectedTableCellValue:(NSString*)value;@end您的前一個視圖是否確認併成爲您希望顯示的tableview的委託,並且還實現協議方法。現在選擇單元格,只需檢索單元格的值並通過[delegate setSelectedTableCellValue:<some cell value>];HTH將它傳遞給您的代理。

0

您可能想要查看核心數據,您將能夠保存數據並重新訪問數據/值並重新加載到您喜歡的任何視圖控制器中。它是一個非常靈活的工具,一旦你瞭解它,你就可以輕鬆地做很多事情。看看這個Tutorial

0

只要使用這個

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    UITableViewCell *cell=[self.m_TableView cellForRowAtIndexPath:indexPath]; 
    AppDelegate* appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [appDelegate.m_SavedDictionary setObject:cell.textLabel.text forKey:@"driver"]; 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

和前一視圖的使用方法viewWillAppear中;

if([[appDelegate.m_SavedDictionary objectForKey:@"driver"]length]>=1) 
{ 
    [m_driverButton setTitle:[appDelegate.m_SavedDictionary objectForKey:@"driver"] forState:UIControlStateNormal]; 

} 

那就是它。

相關問題