如何将视图2的值发送到视图1
我的问题是如何重新加载表视图如何将视图2的值发送到视图1
我有2个视图控制器。
在第一个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中。
任何人都可以帮助我吗?
在此先感谢。
给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;
后,当你在新思维的落实,并希望有表视图中显示该字符串,你可以这样做:
if(nil != self.stringDelegate)
[self.stringDelegate displayString:someString];
蚂蚁那么它的完成
使全球字符串,
在secondViewController分配它,当你从secondViewController流行到FirstViewController,viewWillAppear中会调用。
化妆逻辑,它使用全局变量,然后重新装入表..
可以ü请发送给我的示例代码 – Thukaram
你必须一个全局变量存储您在第二个视图中提交的文本的文本。
现在,当你回到以前的页面,在
- (void) viewWillAppear
{
[yourDataSourceArray addObject:appDelegate.yourGlobalString];
[yourTableView reloadData];
}
和是确保你的yourDataSourceArray
是NSMutableArray
。
希望它可以帮助你。
您可以在第一个视图中为NSString创建属性,并在第二个视图中为第一个视图控制器(UITableViewController?)的实例创建一个属性。然后,在保存或弹出窗口或任何你在第二个视图控制器中进行的操作之后,您可以设置NSString的属性,弹出视图并在viewWillAppear中重新载入tableView。或者,您可以使用Lewen所述的代表团。
感谢它的工作完美 – Thukaram