我对iOS编程比较陌生,所以请在这里与我联系。我工作的要求如下:如何将变量从UIViewController传递给委托UITableViewController
画面1:用户显示加载数据,特别是城市和国家一个UITableView。用户点击选择和被取为屏幕2.
屏幕2 :用户显示他们选择要编辑的项目的“详细”视图。
- 市字符串(selectedCity)被放置在一个文本框中编辑
- 国的一个NSArray装入一个UITableView。应根据从屏幕1传递的字符串(selectedState)在装载的表格中选择所选城市的状态。如果需要,用户可以在这里选择不同的状态。
- 第二个UITableView将包含与城市相关的一系列学校,并从数据库中检索。管理这个列表有一套独立的功能。
我还没有实现屏幕1.以下是我经过的城市和州值屏幕2的任何问题:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Get the City
self.checkedCellIndex = indexPath.row;
FSCity *selectedCity = [CityList objectAtIndex:indexPath.row];
NSString *cityName = selectedCity.name;
NSString *stateName = selectedCity.state;
AdminCityView *dvController = [[AdminCityView alloc] initWithNibName:@"AdminCityView" bundle:[NSBundle mainBundle]];
dvController.selectedCity = cityName;
dvController.selectedState = stateName;
[self.navigationController pushViewController:dvController animated:YES];
dvController = nil;
}
为了打造国际网2,但是,我有以创建每个的UITableView(StateTable和SchoolTable)UITableViewControllers以及向主的UIViewController(AdminCityView)加载它们,就像这样:
- (void)viewDidLoad
{
[super viewDidLoad];
txtCity.text = selectedCity;
if (stateController == nil) {
stateController = [[StateTable alloc] init];
}
if (schoolController == nil) {
schoolController = [[SchoolTable alloc] init];
}
[tblState setDataSource:stateController];
[tblSchool setDataSource:schoolController];
[tblState setDelegate:stateController];
[tblSchool setDelegate:schoolController];
stateController.view = stateController.tableView;
schoolController.view = schoolController.tableView;
}
虽然我可以在得到selectedState变量很好,在我的UIViewController和我的状态表加载在UIView罚款,我坚持如何将selectedState变量从我的UIViewController(AdminCityView)传递给UITableViewController(StateTable),以便我可以在StateTable上执行操作该变量(如选择与变量匹配的行)。
我一直在使用NSLog在AdminCityView和StateTable上进行测试,并且变量绝对只能从AdminCityView当前访问。我不确定是否需要通过AdminCityView中的代码传递它,或者如果我应该返回到Screen 1并以某种方式将它传递给StateTable,然后再导航到AdminCityView。
我很高兴发布任何其他可能有助于达成答案的代码。谢谢!
你为什么要使用两个表视图。我将使用一个表格视图与一个标题和两个部分为不同的选择。 – dasdom
用于用户体验目的。在查看(屏幕)1上,用户将选择他们想要编辑的城市。屏幕2将允许他们编辑该城市的名称,它所属的州,并添加/编辑/查看该城市内的学校列表。有应用程序内是相似的,所以一旦我得到这个“模型”的工作,我要重复处理的其他数据集(同样,对于一个一致的UX)其他几个数据结构。 – user1933062
为什么你不能为selectedState使用全局字符串变量。那么不需要传递价值。您可以直接从UITableViewController访问该变量。 –