如何从uitableview中选择值并在按钮的前一页上显示它

时间:2012-11-30 02:00:15

标签: iphone objective-c ios uitableview

我想像uipickerview一样使用uitableview。点击一个按钮,uitableview来了。点击任何一个单元格,所选值将显示在上一页的按钮上

5 个答案:

答案 0 :(得分:4)

将数据传回另一个控制器的常规方法是使用delegate协议。带按钮的控制器将实现在表视图控制器的.h文件中放置的@protocol声明中声明的协议方法。在tableView:didSelectRowAtIndexPath:方法中,您将调用委托方法,传递单击单元格的值。

答案 1 :(得分:0)

rdelmar是正确的,最简单的方法可能是使用委托协议并将选定的值传递回上一个视图。

-

但是,假设您想要将此值存储在表视图和选择器之外,您可以创建单例或使用NSUserDefaults以避免必须传递值并可能丢失某些内容。如果这个tableview / picker在设置菜单等中,那就是我要做的。

了解基础知识: http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/

答案 2 :(得分:0)

一些授权代码; tableview类中的协议:
@protocol SelectionDelegate <NSObject> -(void)setSelectedTableCellValue:(NSString*)value;@end让您之前的视图确认并成为您希望显示的tableview的委托,并实现协议方法。现在选择单元格,只需检索单元格的值,然后通过[delegate setSelectedTableCellValue:<some cell value>]; HTH将其传递给您的委托。

答案 3 :(得分:0)

您可能需要查看核心数据,您将能够保存数据并重新访问数据/值并重新加载到您喜欢的任何视图控制器中。它是一个非常通用的工具,一旦你学会了它,你将能够做很多事情。看一下这个Tutorial

答案 4 :(得分: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];

}

多数民众赞成。