如何在主视图之前显示辅助视图?
Posted
技术标签:
【中文标题】如何在主视图之前显示辅助视图?【英文标题】:How to show a secondary view before the main view? 【发布时间】:2010-11-11 04:00:06 【问题描述】:我想让我的应用程序(在启动时)加载我在原始视图顶部创建的视图,然后当单击按钮时,顶部视图将消失并在下方显示主视图。我知道这非常简单,但我该怎么做呢?也许在viewDidLoad
中推送视图?
【问题讨论】:
【参考方案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;
,一切都很好。 :)以上是关于如何在主视图之前显示辅助视图?的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用数据加载列表视图之前在具有列表视图的活动中显示进度条(圆圈)