2013-07-12 63 views
0

我有一個UITableViewController與一些靜態單元格。每個單元格都有正確的細節風格。通過觸摸其中的一個,我會轉到下一個控制器。在下一個控制器中,我有兩個帶有複選標記的單元。在「正確的細節」中顯示信息UITableViewCell

問:如何通過在NEXT控制器上只觸摸一個單元來查看「正確的細節」信息?

+0

您的問題不清楚。請澄清你的意思是「正確的細節風格」和「正確的細節」。我們也不會理解什麼「我如何能看到正確的細節」意味着什麼。你想要展示什麼?你想在哪裏顯示它? –

+0

@Julian你知道我可以用正確的細節風格製作UITableViewCell。我想通過在NEXT控制器上觸摸一個單元來選擇正確的細節樣式信息 – Multirut

+0

您的意思是accessoryType嗎?或者accessoryView? –

回答

0

根據上述評論,我對你想達到的目標有一個基本的概念。您想使用[cell setAccessoryView:aView];而不是setAccessoryType

對應您要顯示多少信息(如果它只是一個小圖像或一個巨大的textView)有更好的選擇。

我建議創建一個自定義UITableViewCell子類。這些可以在IB佈局,你可以很容易地連接IBOutlets,並把它的自定義方法和屬性:

- (void)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    MUTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; 
    if(!cell) { 
     cell = (MUTableViewCell *)[[[NSBundle mainBundle] loadNibNamed:@"MUTableViewCell" owner:nil options:nil] objectAtIndex:0]; 
    } 
    [cell setStoredInfoText:[inforSourceArray objectAtIndex:[indexPath row]]]; 
    return cell; 
} 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    MUTableViewCell *cell = (MUTableViewCell *)[tableView cellForRowAtIndexPath:indexPath]; 
    [cell callYourCustomMethod]; 
    [cell setInfoFieldText:@"my informational text"]; 
    // or either display the information you set later to the cell in -cellForRowAtIndexPath 
    [cell setInfoFieldText:[cell storedInfoText]]; 
    // you can also merge the above methods to a method called displayInfo which then gets the storedText property internally: 
    [cell displayInfo]; 
} 


MUTableViewCell.h 
@property (nonatomic, retain) NSString *storedInfoText; 
@property (nonatomic, strong) IBOutlet UILabel *label; 
- (void)setInfoFieldText:(NSString *)text; 
- (void)displayInfo; 

MUTableViewCell.m 
- (void)setInfoFieldText:(NSString *)text { 
    [_label setText:text]; 
} 
- (void)displayInfo { 
    [_label setText:_storedInfoText]; 
}