【问题标题】:How to show a secondary view before the main view?如何在主视图之前显示辅助视图?
【发布时间】:2010-11-11 04:00:06
【问题描述】:

我想让我的应用程序(在启动时)加载我在原始视图顶部创建的视图,然后当单击按钮时,顶部视图将消失并在下方显示主视图。我知道这非常简单,但我该怎么做呢?也许在viewDidLoad 中推送视图?

【问题讨论】:

    标签: iphone objective-c uiview xib


    【解决方案1】:

    使用导航控制器

    MyViewController *myView = [[MyViewController alloc] init];
    UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController:myView];
    My2ndView *secondView = ....
    [navControl pushViewController:secondView animated:NO];
    [window addSubView:navControl.view]
    

    【讨论】:

    • 注意:您可以隐藏顶部导航栏项目使其透明,只是为了管理您的视图
    • 在这种情况下window 会是什么?另外,这是否会出现在我的委托中,如果是这样,为什么它会给我一个错误,说“UIWindow 可能无法响应'-addSubView:'”?
    • 好吧,如果我将“addSubView”更改为“addSubview”,看起来该错误会被删除。
    • 是的,很抱歉是凭记忆这样做的;)
    【解决方案2】:

    这可能非常简单。当用户点击按钮时,只需这样做

    secondViewController.view.hidden = YES;
    

    只需在您的委托中添加两个视图,然后在您的委托中执行此操作。

    如果您愿意,只需“在”secondViewController 中执行它! self.view.hidden = YES;

    听起来你只是在做一些简单的事情......不需要为视图控制器而烦恼。

    你问如何显示第二个视图,就像这样..

    -(BOOL)application:(UIApplication *)applic`ation
            didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
            {
            [window addSubview:yourMainView.view];
            [window addSubview:theTemporaryView.view]; // it goes on top
    
            [window makeKeyAndVisible];
    
            application.idleTimerDisabled = YES;
            return YES;
            }
    -(BOOL)eliminateTempView // example, when the user clicks on the button
            {
            theTemporaryView.view.hidden = YES;
            [theTemporaryView release];
            }
    

    希望对你有帮助!

    【讨论】:

    • 是的,它非常简单。就像“接受条款”之类的东西。不过,我将如何使用这种方法显示视图?
    • 是的,看起来它会完美运行。但是,当我输入代码时,它没有给我任何警告,但它没有显示视图。也许我做错了?我所做的是创建一个名为“theLaunch”的“firstLaunch”对象。 (firstLaunch 是我想要在主视图上的视图)然后我做了你的代码,用“theLaunch”替换了“TemporaryView”。它构建并成功运行,但未显示视图。有什么想法吗?
    • 糟糕,没关系。我发现如果我做[firstLaunch *theLaunch = [[firstLaunch alloc] init];,那么使用它就可以了。感谢您的帮助!
    • 哦,还有一个问题。我如何从另一个视图中调用“eliminateTempView”?
    • 哦,没关系,我只是在我的临时视图中做了self.view.hidden = YES;,一切都很好。 :)
    猜你喜欢
    • 2022-01-08
    • 2011-08-16
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多