我的问题是如何重新加载tableview
我有2个viewcontrollers。
在第一个Viewcontroller中,我有一个tableview。如果我在tableview中选择任何行,它将转到第二个viewcontroller。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
NextPageController *nextView = [[NextPageController alloc] initWithNibName:@"NextPageView" bundle:nil];
[self.navigationController presentModalViewController:nextView animated:YES];
[nextView release];
}
在第二个视图控制器中我有一个文本字段。如果我在文本字段中输入任何值,我需要将该值消除到第一个viewcontroller tableview中。
任何人都可以帮助我吗?
提前致谢。
答案 0 :(得分:4)
给NextPageController一个协议和一个委托,就像这样:
@protocol (NextPageControllerDelegate)
-(void)displayString:(NSString *)inputString;
@end
@interface FirstTableViewController : UITableViewController {
id<NextPageControllerDelegate> stringDelegate;
}
@property (nonatomic, assign) id<NextPageControllerDelegate> stringDelegate;
并在.m文件中:
@implementation
@synthesize stringDelegate;
然后,当你分配NextPageViewController时,插入:
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
NextPageController *nextView = [[NextPageController alloc] initWithNibName:@"NextPageView" bundle:nil];
nextView.stringDelegate = self;
[self.navigationController presentModalViewController:nextView animated:YES];
[nextView release];
}
当然,你的表视图控制器必须符合NextPageControllerDelegate协议,并给出
的实现-(void)displayString:(NSString *)inputString;
之后,当你在nextView中,并希望让表视图显示该字符串时,你可以这样做:
if(nil != self.stringDelegate)
[self.stringDelegate displayString:someString];
蚂蚁然后就完成了
答案 1 :(得分:1)
创建全球NSMutableArray
存储并添加NSMutableArray
中的所有数据
在头等舱的-(void) viewwillappear
,请致电[tablename reloadData];
答案 2 :(得分:1)
制作全局字符串,
在secondViewController中分配它,当你从secondViewController弹出到FirstViewController时,viewWillAppear将调用。
制作逻辑,使用全局变量,然后重新加载表..
答案 3 :(得分:1)
您需要在NSString
中设置一个全局appDelegate
变量,用于存储在第二个视图中归档的文本文本。
现在,当你回到上一页时,
- (void) viewWillAppear
{
[yourDataSourceArray addObject:appDelegate.yourGlobalString];
[yourTableView reloadData];
}
并确保您的yourDataSourceArray
为NSMutableArray
。
希望它对你有所帮助。
答案 4 :(得分:1)
您可以在第一个视图中为NSString创建属性,在第二个视图中为第一个视图控制器(UITableViewController?)的实例创建属性。然后,在输入所需文本后,在第二个视图控制器中保存或弹出或执行任何操作后,可以设置NSString的属性,弹出视图,然后在viewWillAppear中重新加载tableView。或者你可以像Lewen所描述的那样使用委托。