iPhone dev: UIBarButtonItem или заголовок, не отображаемый в NavigationBar - PullRequest
1 голос
/ 26 декабря 2010

вот моя проблема.У меня есть NavigationBar вверху, TabBar внизу и TableView в центре экрана.Очень нормальная ситуация.Я установил все это в IB, и я установил это в делегате приложения:

ExpensesListNavController * costListNavController;

Это для возможности добавления новых представлений в стек.Мне нужно иметь 3 уровня: - список элементов в TableView -> OK - firstLevel: после нажатия одной ячейки представление добавляется в стек -> OK - второй уровень: один нажимается кнопкой «Изменить» на панели навигации на панели инструментов.firstLevel Я хочу показать новый вид, который может быть настроен пользователем.

Моя проблема возникает при попытке добавить кнопку «Изменить» в «firstLevelView».Здесь-ниже мой код

-(IBAction) modify:(id)sender
{
 if (editableDetailViewController == nil) 
 {
  editableDetailViewController = [[editableDetailViewController alloc] init];
 }
 editableDetailViewController.expense = expense;

 [appDelegate.expensesListNavController pushViewController:editableDetailViewController animated:YES];
 editableDetailViewController = nil;
}


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
 [super viewDidLoad];

 appDelegate = [[UIApplication sharedApplication] delegate];
 UIBarButtonItem *modifyButton = [[UIBarButtonItem alloc] initWithTitle:@"Modify" style:UIBarButtonItemStylePlain target:self action:@selector(modify:)];
 appDelegate.expensesListNavController.navigationItem.rightBarButtonItem = modifyButton;
 appDelegate.expensesListNavController.navigationItem.title = @"Titoloooo";
 NSLog(@"NavBar button has just been set !!");
 [modifyButton release];

Ничего не отображается, ни заголовок, ни кнопка.Ты хоть представляешь что происходит ??Я действительно не могу понять !!!

Большое спасибо заранее, AM

1 Ответ

0 голосов
/ 26 декабря 2010

хорошо - я здесь далеко не эксперт, но код, который вы показываете, принадлежит вашему классу "firstLevel"?Или вы создаете свои экземпляры заранее и переключаете представления вручную?

В Интерфейсном Разработчике настройте MainWindow (генерируется автоматически при настройке проекта) Хорошо, я подготовил скриншот из моей настройки Interface BUilder.Кажется, мне не хватает репутации, чтобы иметь возможность опубликовать это.

Обычно вы добавляете в MainWindow.xib контроллер навигации,

  • , добавляете панель навигации.
  • Переместите контроллер корневого представления вКонтроллер навигации.
  • добавление UINavigationItem в контроллер корневого представления
  • добавление UIBarButtonItem в UINavigationItem
  • подключение выхода UIBarButtonItem к вашему IBAction

    В соответствующем классе viewcontroller вам понадобится ваш метод "modify".

    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
    -(IBAction)modify:(id)sender {
        controller = [[firstLevel alloc] initWithNibName:@"secondLevel" bundle:nil];
        [self.navigationController pushViewController:controller animated:YES];
        [controller release];
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...