【问题标题】:Getting iPhone app to display one of two different views让 iPhone 应用程序显示两个不同视图之一
【发布时间】:2011-03-20 20:18:34
【问题描述】:

我有一个程序,我们在其中使用导航控制器,需要应用程序启动到两个不同视图之一。基本上,如果之前已经输入了某些信息,那么我们需要启动应用程序来查看 A,但是如果从未输入过信息,那么我们需要启动它来查看 B。我很难让它工作,我想知道有什么方法如果有的话,我可以实现这一点。我确定它需要在应用程序委托中完成,但我不确定如何。提前致谢!

【问题讨论】:

    标签: iphone objective-c uiview uinavigationcontroller delegates


    【解决方案1】:

    在您的应用委托中实现以下方法。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {    
        [window makeKeyAndVisible];
        if(condition) {
            [window addSubview:[mainViewControllerA view]];
        } else {
            [window addSubview:[mainViewControllerB view]];
        }
    }
    

    您可以根据自己的情况选择要加载的视图。

    【讨论】:

    • 问题是它只是一个视图控制器,有许多不同的视图
    • 如何在 UIViewController 中管理这些视图?您可以为您拥有的每个视图创建一个属性,然后您可以使用 mainViewController.viewA、mainViewController.viewB 等访问视图。
    【解决方案2】:

    根据您的问题,听起来您的 UINavigationController 与您的根视图控制器一起在 XIB 中定义。在这种情况下,您需要从 App Delegate 的 application:didFinishLaunchingWithOptions: 中加载适当的视图。从那里,您可以使用setViewControllers:animated: 为 UINavigationController 设置第一个视图控制器。

    【讨论】:

      【解决方案3】:

      我遇到了这个问题并解决了。

      在您的导航控制器中构建一个容器视图。

      然后根据您的条件决定将什么视图放入容器中。您可能已经预先构建了这两个视图。然后,您可以将视图添加到容器视图中。 我认为“元素”示例有一个容器视图的示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-06
        • 1970-01-01
        • 1970-01-01
        • 2013-12-09
        • 1970-01-01
        • 2021-04-07
        • 1970-01-01
        相关资源
        最近更新 更多