- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
更新:我决定采用不同的方式来解决我的问题。我没有尝试直接重用相同的 UIViewController,而是使用两个普通的 UIViewControllers,它们被设置为 rootViewControllers。在他们的 loadView 方法中,他们调用 [storyboard instantiateViewControllerWithIdentifier:]
以获取前一个 UIViewController 并将他们的 View 设置为 Controller 的 View 。无论如何,这可能是首选方法,因为我需要设置多个变量和委托(delegate)。
我有一个 UIStoryBoard,其中一个 UITabBarController 作为与两个 UINavigationControllers 相连的入口点。它们中的每一个都共享一个通用的 UIViewController 作为它们的 Root View Controller 。当应用程序启动时,第一个 UITabBarItem 被选中, View 按预期加载。但是,当我选择第二个 UITabBarItem 时,相同的 View 不可见。我看到带有黑色背景的 UINavigationBar。我是不是在 Storyboard 界面上做错了什么,或者我是否需要通过每个 UINavigationController 方法(例如 loadView)手动实例化 UIViewController?
最佳答案
奇怪的是,这是一个没有其他人问过的问题。据我所知,共享 rootViewController 是不可能的,我认为这无疑是一个错误,因为当您检查 Storyboard上的连接时,您可以看到 View Controller 已连接到两个导航 Controller 。我认为这是 Storyboard中的一个缺陷,因为复制 viewController 并重新应用它们的所有连接非常容易出错,并且会使 Storyboard过于复杂。
我看到了您对问题的解决方案。像这样的解决方法让我怀疑 iOS 中当前的 Storyboard功能是否已准备好创建应用程序。我认为 Storyboard存在概念性问题,Apple 需要决定 Storyboard上的 viewController 是代表实例还是仅代表类,现在它并不一致,因为您可以看到多个 segues 实际上可以指向相同的 viewController 但实际上每个 segue 都有自己的实例,为什么 rootViewController 连接不遵循这一点?我不知道。
请注意,在您的解决方案中,请考虑 Apple 文档中的以下内容:
“重要 View Controller 是其 View 及其创建的任何 subview 的唯一所有者。它负责创建这些 View 并在适当的时候放弃它们的所有权,包括在低内存条件下和 View Controller 本身已发布。如果您使用 Storyboard或 nib 文件来存储 View 对象,则每个 View Controller 对象会在 View Controller 请求时自动获取这些 View 的副本。但是,如果您手动创建 View ,则应该永远不要对多个 View Controller 使用相同的 View 对象。”
关于ios - 与两个 UINavigationController 共享与 rootViewController 相同的 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710676/
我有几个由导航 Controller 控制的 View Controller 。 例如,viewController A 和 viewController B 都可以将 viewController
目前我在单独的 Storyboard中有一个导航 Controller ,它使用退出按钮。这个退出按钮应该返回到 rootViewController(那是在 mainstoryboard 中)这是一
我目前正在将我的应用程序迁移到 iOS 7 上,并且在新的导航 Controller /栏管理上已经卡了好几个小时了。 之前,当我们有导航 Controller 时,我们有这样的代码片段: UINav
我环顾四周,终究找不到用滑动手势替换 backbarbuttonitem 的方法。我想向左滑动并让应用恢复到之前的 View Controller 。澄清一下,我正在使用 UINavigationCo
我环顾四周,终究找不到用滑动手势替换 backbarbuttonitem 的方法。我想向左滑动并让应用恢复到之前的 View Controller 。澄清一下,我正在使用 UINavigationCo
我使用 320*44 图像自定义 NavigationBar backgroundImage。因此状态栏为黑色。这就是我想要的。但是,当我呈现此 navigationController 时,如您所知
我正面临以下代码的崩溃。场景是 这是我的应用委托(delegate)方法,我在其中使用 UINavigationController 加载 RTC_HomeVC。 - (BOOL)applicatio
目前我有一个使用 uinavigationcontroller 但仅在 Root View 中隐藏导航栏的应用程序,我想在某些应用程序中将此应用程序用作外部库并将整个应用程序作为一个菜单项推送。 但是
我有两个 View Controller ,ViewControllerA 和 ViewControllerB,嵌入在 UINavigationController 中。 ViewController
iOS 7 采用了一种新手势,在屏幕上从左到右滑 Action 为 UINavigationController 中返回按钮的快捷方式。 我的应用似乎没有免费采用这种行为。我需要做什么才能使这个手势可
我已经在这上面花了几个小时,但无法让它工作。希望有人能帮助我。 我有一个 UIPageViewController,当我在应用程序启动时将它添加到我的默认 View 时,它可以完美地工作。这就是我所做
我想为我的 UIToolbar 使用我自己的背景。 要使用 UINavigationBar 做到这一点,我刚刚使用了这个类别并覆盖了 drawRect 方法: @implementation
我正在展示一个 UINavigationController模态地,从 iOS 应用程序扩展中: UINavigationController *nav = [[UINavigationControl
我读到在 iOS 应用程序中有这样的结构是不好的。但是,如果应用程序有很多 UINavigationController 和 UITabBarController 怎么办?但是一个UINavigati
我们在 UISplitViewController 应用程序中有我们需要的特定行为。我们有以下 3 个 View 的层次结构 FormOneViewController - 在 MasterView
我试图将一个简单的 UIToolbar 放在模态呈现的 UINavigationController 的底部。在这个示例中,它应该包含两个按钮“取消”和“某事”。 ... UINavigationCo
我有一个 UITabBarController,其中包含一些选项卡。其中一个选项卡具有 UINavigationController 和 UITableViewController 作为 Root V
我的应用程序的整个导航系统都是围绕导航 Controller 构建的。我所有的风险投资公司都被插入和推出。我有一个从左侧出来的菜单系统“抽屉”,它是我的自定义导航 Controller 的一部分。在菜
我有一个 UINavagationController (NC),它显示“Items”数组的多个 UIViewController (VC) View ,并且我有一个 UINavigationCont
在我的 UISplitViewController ,主 View 是UINavigationController包含 UITableViewController .有时,当用户选择表中的项目时,我不
我是一名优秀的程序员,十分优秀!