2010-01-11 3 views
0

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

UILabel * label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,45,45)] autorelease]; 
label.textColor = [UIColor yellowColor]; 
label.backgroundColor=[UIColor clearColor]; 
self.navigationItem.titleView = label; 
[email protected]"Title"; //CUSTOM TITLE 
[label sizeToFit]; 

Я хочу, чтобы моя панель навигации, чтобы показать название ячейки, а не пользовательский заголовка.

Вот мой табличный код:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return ghazalList.count; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease]; 
    } 

    NSUInteger row = [indexPath row]; 
    cell.textLabel.text = [ghazalList objectAtIndex:row]; 
    return cell; 
} 
+0

Вы хотите, чтобы название навигационной панели менялось при выборе ячейки? – gerry3

+0

NO. когда я хочу изменить цвет заголовка и написать этот код label.text = @ "Title"; этот код изменил название моей ячейки. Я хочу только изменить цвет, но не заголовок – Momi

+0

Если вы не хотите настраивать заголовок, то не пишите 'label.text = @" Title "; // CUSTOM TITLE' ?? Я думаю, что я не понимаю вас правильно ... –

ответ

0

@Adam:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
if (!anotherViewController) { 
    anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherViewController" bundle:nil]; 
    anotherViewController.navigationItem.title=[ghazalList objectAtIndex:indexPath.row]; 
    [self.navigationController pushViewController:anotherViewController animated:YES]; 
    [anotherViewController loadGhazal:indexPath.row]; 

}else { 
    [anotherViewController loadGhazal:indexPath.row]; 
    anotherViewController.navigationItem.title=[ghazalList objectAtIndex:indexPath.row]; 
    [self.navigationController pushViewController:anotherViewController animated:YES]; 
} 

}

я стихотворение создающим приложение, поэтому у меня есть ячейка 495 и 495 HTML-файл [стихи]. каждая ячейка [POEM 1 до 495] имеет специальный пум. все отлично работает, но этот проклятый цвет названия сводит меня с ума ... Я поставил ваш код, который изменил цвет, но название изменилось на Поэму 5!

+0

ОК, поэтому кажется, что вы нажимаете на контроллер другого контроллера и устанавливаете заголовок своего навигационного элемента. Попробуйте поэкспериментировать с линией 'label.text = self.navigationItem.title;', чтобы вы установили заголовок на основе 'anotherViewController.navigationItem.title', а не' self' (я не знал, что такое 'self' в код в вашем вопросе, я не знаю, какой метод он есть, в каком классе) –

+0

Я попытался с этой линией anotherViewController.navigationItem.title , но я получил ошибку, которая не была объявлена ​​(сначала использовать эту функцию) – Momi

+0

Adam plz help мне мое приложение закончено, я просто жду этого! – Momi

1

на основе ваших объяснений, попробуйте

UILabel * label = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,45,45)] autorelease]; 
label.textColor = [UIColor yellowColor]; 
label.backgroundColor = [UIColor clearColor]; 
label.text = self.navigationItem.title; 
self.navigationItem.titleView = label; 
[label sizeToFit]; 
+0

спасибо adam, он работает: D, но все еще имеет небольшую проблему , если я выберу любую ячейку, это название Cell 5! Зачем ? , если я выбираю ячейку 46, это название 5 или любое число! – Momi

+0

Вы реализуете 'tableView: didSelectRowAtIndexPath:' в 'UITableViewDelegate'? Что оно делает? –

+0

см. Ответ ниже: – Momi

Смежные вопросы