我正在使用静态UITableView
来显示客户的个人资料。
它具有 SelectCountryCell 来选择国家,单击该国家时,将打开新UITableView
的国家列表。
当我从 Country TableView 中选择国家时,它应该显示在以前的 TableView 的 SelectCountryCell 中。
我该怎么做呢?
我正在使用静态UITableView
来显示客户的个人资料。
它具有 SelectCountryCell 来选择国家,单击该国家时,将打开新UITableView
的国家列表。
当我从 Country TableView 中选择国家时,它应该显示在以前的 TableView 的 SelectCountryCell 中。
我该怎么做呢?
主视图控制器.h
#import "DetailViewController.h"
@interface MasterViewController : UITableViewController <DetailProtocol> // Note this.
@property (strong, nonatomic) DetailViewController *detailViewController;
@property (strong, nonatomic, readwrite) NSString *selectedCountry;
@end
主视图控制器.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.detailViewController) {
self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}
self.detailViewController.delegate = self; // THIS IS IMPORTANT...
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
// Note this -- It's a delegate method implementation
- (void)setCountry:(NSString *)country
{
self.selectedCountry = country;
}
DetailViewController.h
@protocol DetailProtocol <NSObject>
-(void)setCountry:(NSString *)country;
@end
@interface DetailViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITableView *tableView;
@property (unsafe_unretained) id <DetailProtocol> delegate; // Note this
@end
细节视图控制器.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
[self.delegate setCountry:[countries objectAtIndex:indexPath.row]]; // Note this
[self.navigationController popViewControllerAnimated:YES];
}
您应该将静态单元绑定到您的插座,UITableViewController
并将配置文件同步方法放入该- viewWillAppear
方法。
当用户更改国家/地区列表中的国家/地区时,配置文件会更新。之后,当用户移回UITableViewController
具有静态内容的实例时,配置文件数据将自动更新。
您可以在 CityTableView 中定义一个委托,然后在此委托中定义一个方法。
您应该在 CountryTableView 中实现此方法。
然后你可能会得到你想要的。
我只给你一个想法。你应该自己找到细节。