Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Ios 如何在选项卡栏而不是导航栏上显示视图?_Ios_Objective C_Cocoa Touch_Uiviewcontroller_Ios8 - Fatal编程技术网

Ios 如何在选项卡栏而不是导航栏上显示视图?

Ios 如何在选项卡栏而不是导航栏上显示视图?,ios,objective-c,cocoa-touch,uiviewcontroller,ios8,Ios,Objective C,Cocoa Touch,Uiviewcontroller,Ios8,我想展示一个模式视图,它显示在uitabar上,而不是UINavigationBar上 据我所知,将视图覆盖在所有视图之上的最佳方法是将其放置在自己的ui窗口中。这非常有效,如果我使窗口中视图的y原点低于导航栏,则效果会非常好 然而,要使其低于y原点是非常困难的。我可以使用topLayoutGuide.length属性来定位y,但当我旋转时,随着导航栏高度的变化,这不再是真的 我应该怎么做呢?我最近不得不处理一些类似的事情,并最终以modally方式呈现一个新的视图。您需要调用导航控制器,然后将

我想展示一个模式视图,它显示在
uitabar
上,而不是
UINavigationBar

据我所知,将视图覆盖在所有视图之上的最佳方法是将其放置在自己的
ui窗口中。这非常有效,如果我使窗口中视图的y原点低于导航栏,则效果会非常好

然而,要使其低于y原点是非常困难的。我可以使用
topLayoutGuide.length
属性来定位y,但当我旋转时,随着导航栏高度的变化,这不再是真的


我应该怎么做呢?

我最近不得不处理一些类似的事情,并最终以modally方式呈现一个新的视图。您需要调用导航控制器,然后将其
setDefinePresentationContext:
设置为
Yes

setDefinesPresentationContext:
是必需的,以便呈现视图控制器将呈现视图的边界限制在呈现视图的可见区域。因此,视图控制器保持在当前可见窗口的范围内(默认值为否,在这种情况下,显示的视图通过VC层次结构不断请求定义上下文,直到它到达声明此角色的VC,或者直到它到达UIWindow)

使用此方法,您不必计算视图的边界,它将自动完成。不过,请查看有关此方法的Apple文档,以获得完整的解释



(还有无耻的插件,我在上面写过。它在“显示搜索栏”下。请原谅格式化,仍在进行中)

如果不想添加覆盖,那么可以使用导航控制器显示viewcontroller。所以导航栏不会隐藏。@ChintaN Maddy Ramani这是一个简单的视图,我不想增加这种复杂程度。