Пользовательская панель навигации в iOS - PullRequest
0 голосов
/ 14 октября 2011

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

Представьте, что для каждого вида, который вы перемещаете вперед, на панели навигации появляется новая кнопка для вида, который вы только что оставили, например,

Вид 1 >> Вид 2 >> Вид 3

Мне вполне удобно создавать настраиваемые компоненты iOS, которые можно изменять, но мне очень интересно узнать, как другие люди подойдут к этой задаче.

Экземпляр, который я запускаю в данный момент, является подпредставлением UIView, и при инициализации я создаю панель навигации, добавляя UIButton для записей, детализированных в массиве словарей, предоставляемых классом делегата.

В коде psudeo:

@protocol NavDelegate

- (void)UIButtonClicked;

@end

@protocol NavDataSource

 - (NSMutableArray *)arrayOfDictionaries;

@end

@interface Navbar : UIView
<NavDelegate,NavDataSource>
{
    //create and synthesize delegate and datasource objects
}
@end

@implementation NavBar

- (id)init
{
//override and instantiate necessary objects
}

- (void)layoutSubviews
{
//here I use the number of dictionaries in the delegate returned array to add UIButtons to
//a UIView adding control events for when the button is clicked
}

@end

Это работает, но я не могу удержаться от ощущения, что есть более элегантное решение.

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

Заранее спасибо, ребята

1 Ответ

0 голосов
/ 14 октября 2011

Apple, я полагаю, в своих собственных документах о контроллерах навигации хмурится на такого рода интерфейс.

Похоже, у ваших заинтересованных сторон есть менталитет веб-сайта ... который, по крайней мере, на мой взгляд, является неправильным для дизайна мобильных приложений. Они UI или UX люди? Если нет, ну ... возможно, им нужен.

Как говорится, они заказчик. : -)

...