Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在iOS中添加应用程序范围的标题视图的最佳实践_Iphone_Ios_Ipad - Fatal编程技术网

Iphone 在iOS中添加应用程序范围的标题视图的最佳实践

Iphone 在iOS中添加应用程序范围的标题视图的最佳实践,iphone,ios,ipad,Iphone,Ios,Ipad,假设我的主视图控制器是一个带有其他子视图控制器的选项卡栏(即第一个是导航控制器,第二个是uiviewcontroller的子类,等等) 现在我想添加一个静态标题视图(将至少包含一个类似网站的徽标uiimageview) 那么,实现这一目标的最佳实践是什么呢?编辑:正如马克·亚当斯在下面的评论中所解释的,这不是一个好的策略。我将把它留作一张便条,说明什么是不该做的 “最佳实践”是一个不确定的术语,但我马上想到的是使您的uitabarcontroller成为父级UINavigationContro

假设我的主视图控制器是一个带有其他子视图控制器的选项卡栏(即第一个是导航控制器,第二个是uiviewcontroller的子类,等等)

现在我想添加一个静态标题视图(将至少包含一个类似网站的徽标uiimageview)


那么,实现这一目标的最佳实践是什么呢?

编辑:正如马克·亚当斯在下面的评论中所解释的,这不是一个好的策略。我将把它留作一张便条,说明什么是不该做的



“最佳实践”是一个不确定的术语,但我马上想到的是使您的
uitabarcontroller
成为父级
UINavigationController
的根和唯一视图控制器。然后,您可以在导航栏中放置您喜欢的任何徽标
UIImageView

如果您不想使用
UINavigationBar
样式,那么我建议对UIView进行子类化,创建自定义视图,并使用简单的实现和偏移值将其添加到每个
UIViewController
。这很麻烦,但它避免了在项目中添加不必要的
UINavigationControllers


至于最佳实践,您应该始终将
uitabarcontroller
作为窗口的根,而不是将
UINavigationController
uitabarcontroller
作为根


另外,我非常感谢另一张海报的名字。

只是一个警告,引用了HIG:“避免占用人们关心的内容的空间。例如,在屏幕顶部显示第二个持久条,除了显示品牌资产外,什么也不做,这意味着内容的空间变小了。考虑其他,侵入性较小的方法来显示无处不在的品牌,例如巧妙地定制屏幕的背景。“
UITabBarController
不应以这种方式使用。它的类引用声明选项卡栏控制器只应安装在
UIWindow
的实例中。在另一个视图控制器中嵌入选项卡栏控制器可能会导致一些非常奇怪的布局行为。