iOS中的自定义导航栏

时间:2011-10-13 20:08:29

标签: iphone objective-c ios uinavigationcontroller navigationbar

我正在开发一个需要自定义uinavigationbar的项目。期望的效果是导航控制器中包含的视图堆栈上的可视化。

想象一下,对于每个视图,您向前移动一个新按钮会出现在您刚刚离开的视图的导航栏中。例如

  

查看1>>查看2>>查看3

我很乐意创建自定义可恢复的iOS组件,但我很想知道其他人如何处理此任务。

我现在运行的实例是UIView的子视图,在init上我通过为委托类提供的字典数组中详细列出的条目添加UIButtons来创建导航栏。

在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

它有效,但我不能帮助感觉那里有更优雅的解决方案。

我也很想知道人们是否认为这是一种应该避免的做法。我不情愿“重新发明轮子”,但项目利益相关者认为这是一个很好的UI元素。如果意见的潮流是“不惜一切代价”,那么我一定会把这个论点反馈给他们。

先谢谢你们

1 个答案:

答案 0 :(得分:0)

Apple,我相信,在他们自己的导航控制器文档中,对这种UI不屑一顾。

听起来你的利益相关者有一个网站面包屑的心态......至少在我看来,这对于移动应用程序设计来说是错误的心态。他们是UI还是UX用户?如果没有,那么......也许他们需要一个。

话虽如此,他们是客户。 : - )