Я настраиваю маршрутизацию к TTTableViewController следующим образом:
[map from:@"myurl://filter/(initWithName:)"
toViewController:[FilterViewController class]];
, а затем в другом контроллере представления я настраиваю изменяемый словарь для прохождения через мой запрос:
// Set up dictionary and populate a field
NSMutableDictionary *filterDictionary;
filterDictionary = [[NSMutableDictionary alloc] init];
[filterDictionary setObject:@"test entry" forKey:@"test key"];
// Attach a query to the URL and open it
TTURLAction *theAction = [[TTURLAction actionWithURLPath:@"myurl://filter/search"]
applyQuery:filterDictionary];
[[TTNavigator navigator] openURLAction:theAction];
Наконец, в контроллере представления фильтра я могу правильно получить доступ к значениям:
в .h:
@property (nonatomic, retain) NSMutableDictionary *filterDictionary;
в .m:
- (id)initWithName:(NSString *)filterName query:(NSMutableDictionary *)filters {
if (self = [self init]) {
self.filterDictionary = filters;
NSLog(@"Filter Dictionary assigned : %@", self.filterDictionary);
}
return self;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (filterDictionary)
[filterDictionary setObject:textField.text forKey:@"searchAddress"];
[textField resignFirstResponder];
return YES;
}
словарь корректно изменчив, и я могу добавлять значения и т.д. без проблем.Однако, когда мой filterViewController отклонен, я предположил, что измененный словарь будет отражен в родительском элементе - он был передан по ссылке правильно.
Я что-то упустил?Является ли мой словарь в filterVC копией из-за базового класса Three20?