iOS - 使用对所有 UIViewController 转换保持静止的自定义工具栏/导航栏?

标签 ios static uinavigationcontroller delegates uitoolbar

我想在我的应用程序窗口顶部使用一个自定义的工具栏/导航栏,它应该在所有 uiviewcontroller 转换期间保持静止。

基本上是一个带有按钮、标签等的全局工具栏,它们保持完全静态并且在按下/弹出其他 View Controller 时不会四处移动。这个工具栏应该有一种委托(delegate)方法的形式,这样我就可以在上面有可以在所有 View Controller 上使用的按钮。

我正在使用 XCode 5.1.1 开发 iOS 7.0+ iPad-only 应用程序。 有什么建议吗?

最佳答案

您可以创建自己的容器 View Controller ,它有一个 child 。使用导航 Controller 作为子项和 setNavigationBarHidden:animated:,然后充当导航 Controller 的委托(delegate),以便您知道当前 View 何时更改。

对于“全局”按钮,将容器 View Controller 作为按钮的目标。当点击按钮时,容器将其转发到导航 Controller 堆栈中的顶 View Controller 。要启用此功能,您的所有 View Controller 都可以符合一个协议(protocol),该协议(protocol)指定与按钮相关的方法(这对编译器来说是一个很好的选择,您可以让 View Controller 响应所需的方法)。

关于iOS - 使用对所有 UIViewController 转换保持静止的自定义工具栏/导航栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23315911/

相关文章:

ios - 如何在 Swift 中使用 Core Plot 创建图例

C# - 静态方法中的参数线程安全吗?

ios - 在部分显示的 UIView 中导航

iphone - 如何使用 UIScrollView 捕捉缩放?

objective-c - 关于 NSString 的 iOS 内存管理

iphone - 如何像在 Messages.app 中一样向下移动 iPhone 键盘?

c++ - C 和 C++ 中的静态变量

java - Scala 可以反射(reflect)静态方法吗?

xcode - 在不同的导航堆栈中展开到 viewController 不起作用

ios - Swift 在两个 View Controller 上使用后退按钮