Как избавиться от заголовка в верхней части панели навигации, но сохранить заголовок в элементе? - PullRequest
0 голосов
/ 17 августа 2011

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

@implementation UINavigationBar (Background)

-(void)drawRect:(CGRect)rect{

UIImage *customLogo = [UIImage imageNamed:@"UINavBar.png"];
[customLogo drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];

}

@end

Я пытаюсь избавиться от заголовка вверху, не избавляясь от отображаемого слова.в элементе навигации.Это переменные, которые я установил в моем viewController:

    NSArray *tableDataSource;
NSString *CurrentTitle;
NSInteger CurrentLevel;

Вот где я думаю, что проблема заключается в следующем:

if(CurrentLevel == 0) {

NSArray *tempArray = [[NSArray alloc] init];
self.tableDataSource = tempArray;
[tempArray release];

self.tableDataSource = [self.industryData objectForKey:@"Rows"];
self.navigationItem.title = @"Back";

}
else
    self.navigationItem.title = CurrentTitle;
}

Если я установлю navigationitem.title = nil, я могубольше не отступать.Есть ли способ, которым я могу сделать так, чтобы заголовок исчезал без потери в навигационном контроллере?

Ответы [ 2 ]

3 голосов
/ 17 августа 2011

Если вы хотите, чтобы на кнопке было написано back, вы ошиблись.

Вам нужен код, подобный этому, размещенный в контроллере вида

  UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                             style:UIBarButtonItemStyleBordered
                                                            target:nil
                                                            action:nil];

 self.navigationItem.backBarButtonItem = backButton;
 [backButton release]; backButton = nil;

Теперь, когда следующая страница помещается в стек, кнопка «Назад» будет показывать back вместо title контроллера, с которого мы только что пришли.

Теперь, если вы хотите, чтобы кнопка «Назад» произнесла title предыдущего контроллера представления, но вы не хотите, чтобы заголовок отображался в верхней части, когда вы в данный момент просматриваете контроллер представления. Вы можете просто установить вид заголовка на пустой вид, например так:

self.navigationItem.titleView = [[UIView alloc] initWithFrame:CGRectZero];
1 голос
/ 17 августа 2011

Просто установите заголовок следующим образом ..

self.navigationItem.title = @"";  

Это должно сделать это, если не читать дальше ...

Также может быть, что ваша строка NSString не инициализирована.Попробуйте это.

NSString *currentString = @"";  

Таким образом, вы не будете устанавливать для своего элемента навигации значение nil, говоря, что он равен CurrentString.
Еще один указатель, я никогда не устанавливал переменные с заглавной буквой для первого слова.Все путает с заданными словами ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...