我正在使用靜態UITableView
來顯示客戶的個人資料。如何將數據從tableview傳遞到另一個tableview單元格?
它有SelectCountryCell選擇國家,當點擊時,國家列表打開新的UITableView
。
當我從Country TableView中選擇國家時,它應該顯示在以前的TableView的SelectCountryCell中。
我該怎麼做?
我正在使用靜態UITableView
來顯示客戶的個人資料。如何將數據從tableview傳遞到另一個tableview單元格?
它有SelectCountryCell選擇國家,當點擊時,國家列表打開新的UITableView
。
當我從Country TableView中選擇國家時,它應該顯示在以前的TableView的SelectCountryCell中。
我該怎麼做?
您應該將靜態單元格綁定到您的UITableViewController
中的網點,並將配置文件同步方法設置爲- viewWillAppear
方法。
當用戶更改國家/地區列表中的國家/地區時,配置文件會更新。之後,當用戶移回帶有靜態內容的UITableViewController
實例時,配置文件數據將自動更新。
您可以在CityTableView中定義一個委託,然後在此委託中定義一個方法。
您應該在CountryTableView中實現此方法。
然後你可能會得到你想要的。
我只給你一個想法。你應該自己找到細節。
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];
}