В подробном представлении Я пытаюсь вытащить заголовок пункта навигации, который динамически устанавливается из моего UITableView. Я хочу установить его как значение NSString - так, например, если мой заголовок «картофель», я хочу получить эту строку и установить ее как переменную в моем контроллере представления.Как получить значение self.navigationItem.title и установить как новую переменную?
Вот код, который у меня есть. Я попытался установить эту новую переменную в качестве текста UILabel и всегда выводит строку «Подробно» - я никогда не могу получить фактическое значение названия.
NSString *theTitleValue = self.navigationItem.title;
self.detailDescriptionLabel.text = theTitleValue;
Я должен отметить, что, если я вручную установить строку в моем описании этикетки (UILabel) он работает отлично. Только тогда, когда я вытягивать self.navigationitem.title это вернуться в «Деталь»
self.detailDescriptionLabel.text = @"Some stuff here LMAO!!!";
Таким образом, одна строка выше вывод будет, что строка в моей этикетке. Любые мысли о том, как я могу получить буквальное строковое значение моего текущего элемента навигации?
EDIT: Вот код из моего представления таблицы, который подталкивает это новое подробное представление и настройку названия. Есть ли способ передать эту переменную из представления таблицы в подробный вид?
Что я имею в виду, значение currentLabel - это именно то, что мне нужно захватить. Однако этот код ниже от MasterViewController.m, и мне нужна переменная currentLabel внутри DetailViewController.m. Я не знаю, как передавать переменные между контроллерами представлений, поэтому, на мой взгляд, самый простой способ решить эту проблему - вытащить значение из заголовка навигации DetailViewController.
# MasterViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// creating NSString value for current vegetable in array
NSString *currentLabel = [self.vegetablesListing objectAtIndex:indexPath.row];
DetailViewController *detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"VegetablesDetailViewCont"];
[self.navigationController pushViewController:detailVC animated:YES];
detailVC.navigationItem.title = currentLabel;
}
странно это я пробовал, но тянет этикетку от моего UITableView вместо , Таким образом, с этим значением я получаю текст ярлыка «овощи» для каждого вида овощей в моем списке - картофель, морковь, зеленая фасоль и т. Д. Может быть, я неправильно настраиваю основную деталь? Я редактирую свой оригинальный пост выше с большим количеством кода. – Jake
oh man !! что вы закодировали в своем приложении ... ??? – samfisher
Внутри моего представления таблицы у меня есть метод didSelectRowAtIndexPath:. Здесь я устанавливаю переменную '* currentLabel', которая извлекает динамические данные из массива и заполняет таблицу. Мне нужно передать это значение String на следующую страницу - я уже делаю это, установив файл navigationItem.title, поэтому я полагаю, что я мог бы просто потянуть это значение вместо этого. Код, который вы мне указали выше, вытаскивает заголовок TableView, а не заголовок detailView. Это проблема, с которой я сталкиваюсь - если я могу предложить дополнительную информацию, пожалуйста, спросите. Но я все еще довольно новичок в Obj-C, так что это битва. – Jake