我使用静态UITableView
来显示客户的个人资料。
它有SelectCountryCell来选择国家/地区,当点击该国家/地区时,会打开包含国家/地区列表的新UITableView
。
当我从Country TableView中选择国家时,它应显示在之前的TableView的SelectCountryCell中。
我该怎么做?
答案 0 :(得分:0)
您应该将静态单元格绑定到UITableViewController
中的出口,并将配置文件同步方法添加到- viewWillAppear
方法。
当用户更改国家/地区列表中的国家/地区时,配置文件会更新。之后,当用户使用静态内容移回UITableViewController
实例时,配置文件数据将自动更新。
答案 1 :(得分:0)
您可以在CityTableView中定义委托,然后在此委托中定义方法。
您应该在CountryTableView中实现此方法。
然后你可能得到你想要的东西。
我只给你一个想法。你应该自己找到细节。
答案 2 :(得分:0)
<强> MasterViewController.h 强>
#import "DetailViewController.h"
@interface MasterViewController : UITableViewController <DetailProtocol> // Note this.
@property (strong, nonatomic) DetailViewController *detailViewController;
@property (strong, nonatomic, readwrite) NSString *selectedCountry;
@end
<强> MasterViewController.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
<强> DetailViewController.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];
}