Подтвердить что ты не робот

Несколько кнопок на панели навигации iOS 5?

Я знаю, что в этой теме много, но я не могу заставить код работать. Я запускаю iOS5 и создаю iPad, и я просто не могу получить две кнопки на одной стороне моей панели навигации.

Любая помощь будет оценена, спасибо.

EDIT:

Некоторый код, который я тестировал, его в viewDidLoad, ничего не делает.

UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(save)];

    UIBarButtonItem *deleteButton = [[UIBarButtonItem alloc] initWithTitle:@"Delete" style:UIBarButtonItemStylePlain target:self action:@selector(delete)];

    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:saveButton,deleteButton,nil];
4b9b3361

Ответ 1

В iOS 5 UINavigationItem получили свойства массива: rightBarButtonItems и leftBarButtonItems. Вы можете увидеть более подробную информацию о том, как они работают в отношении leftBarButtonItem и rightBarButtonItem, и кнопку back здесь в ссылке на класс.

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

EDIT

Вот код, который я использовал для создания своих массивов. Мои кнопки были созданы в конструкторе интерфейса:

self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:backButton, settingsButton, nil];
self.navigationItem.leftItemsSupplementBackButton = YES;

self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:continueButton, saveButton, nil];

Ответ 2

Я считаю, что эти ответы предполагают, что вы используете панель навигации по умолчанию. (Другими словами, тот, который iOS дает вам "бесплатно", когда вы используете UINavigationViewController.)

Если вы используете пользовательский UINavigationBar, тогда вам нужно будет сначала его загрузить UINavigationItem. (Вы также можете перезаписать UINavigationItem по умолчанию.) Оттуда вы можете установить свойства leftBarButtonItems и rightBarButtonItems.

Что-то вроде этого:

// customNavBar points to my custom UINavigationBar
navItem = [[UINavigationItem alloc] initWithTitle:@"Details"];
NSArray *navArray = [[NSArray alloc] initWithObjects:navItem, nil];
[customNavBar setItems:navArray];  // This wipes out all existing UINavigationItem objects

NSArray *leftArray = [[NSArray alloc] initWithObjects:itemOk, nil];
NSArray *rightArray = [[NSArray alloc] initWithObjects:itemCancel, nil];
navItem.leftBarButtonItems = leftArray;
navItem.rightBarButtonItems= rightArray;