self.title возвращается (null)
-
06-07-2019 - |
Вопрос
Используя контроллер навигации, я открываю новый вид и задаю его заголовок динамически:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
int countryIndex = [indexPath indexAtPosition: [indexPath length] - 1];
NSString *selectedCountry = [[countrysData objectAtIndex: countryIndex] objectForKey: @"title"];
scheduleState *scheduleStateViewController = [[scheduleState alloc] initWithStyle:UITableViewStyleGrouped];
[self.navigationController pushViewController:scheduleStateViewController animated:YES];
scheduleStateViewController.title = selectedCountry;
[scheduleStateViewController release];
CountryData - это изменяемый массив, созданный из ленты XML.
Теперь, когда я перехожу к следующему представлению, оно отображается правильно, однако, когда я пытаюсь сделать NSLog внутри нового viewController, оно регистрируется как (null):
NSLog(@"The title is: %@", self.navigationItem.title);
2009-10-27 11: 30: 20.416 myApp [50289: 20b] Название: (null)
Мне нужно использовать заголовок в качестве параметра для получения запроса веб-службы ...
Есть мысли?
Решение
Если вы пытаетесь записать заголовок в -viewDidLoad
контроллера или что-то подобное, это не удастся, потому что вы устанавливаете заголовок после нажатия на контроллер представления. Установите название контроллера, прежде чем нажать его, и он должен работать лучше. Р>
Единственная другая причина, по которой это может быть nil, - это если переменная selectedCountry
равна nil. Зарегистрируйте это напрямую, чтобы убедиться.