Вопрос

Используя контроллер навигации, я открываю новый вид и задаю его заголовок динамически:

- (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. Зарегистрируйте это напрямую, чтобы убедиться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top