我想提供一个模式视图,显示在UITabBar
上,而不是UINavigationBar
上。
根据我的理解,在所有内容之上叠加视图的最佳方法是将其置于自己的UIWindow
中。这很好用,如果我在窗口中创建视图的y原点低于导航栏,它就可以很好地工作。
然而,让它低于y起源真的很难。我可以使用topLayoutGuide.length
属性来定位y,但是当我旋转时,导航栏高度会发生变化时不再为真。
我该怎么做?
答案 0 :(得分:0)
我最近必须处理类似的事情,并最终以模态方式呈现您将要调用导航控制器的新视图,然后将其setDefinesPresentationContext:
设置为Yes
。
setDefinesPresentationContext:
,以便呈现视图控制器将呈现视图的边界限制为呈现视图的可见区域。因此,视图控制器保持在当前可见窗口的范围内(默认值为no,在这种情况下,呈现的视图一直要求通过VC层次结构定义上下文,直到它到达声明此角色的VC,或直到它击中UIWindow)。
使用此方法,您不必计算视图的边界,它只是自动完成。有关此方法的Apple文档,请参阅完整说明。
(和无耻的插件,我在my blog上写了它。它在“呈现搜索栏”下面。原谅格式化,仍在进行中)