如何在运行时删除 UIView 并在 appDelegate 中添加另一个 UIView?

Posted

技术标签:

【中文标题】如何在运行时删除 UIView 并在 appDelegate 中添加另一个 UIView?【英文标题】:How to remove UIView and add another UIView in appDelegate at runtime? 【发布时间】:2011-09-08 06:00:08 【问题描述】:

我有 2 个完全依赖 AppDelegate 文件的 UIView。

First UIView 是我在启动应用程序时必须启动的广告页面。但是我已经用另一个依赖于 AppDelegate 的 HomeView 制作了该应用程序。

我在 applicationDidFinishLaunching 中添加 AdView 如下:

[self.view addSubView:AdView.view];

但现在我希望当我点击 AdView 页面中的 DONE 按钮时,我应该导航到 HomeView。但是homeView应该是appDelegate的子视图

我如何在 Done 按钮上编写代码来完全删除 AdView 并将 Home View 作为 appDelegate 的子视图? 提前谢谢

【问题讨论】:

【参考方案1】:

使用UIView的removeFromSuperView函数。

- (void)removeFromSuperview ;

如下使用...

[AdView removeFromSuperView];

【讨论】:

好的,那么我如何插入新视图作为 appdelegate 视图的子视图。 访问您的 appdelegate 的主视图并添加您的主视图。如下...[myAppDelegateView addSubView:HomeView]【参考方案2】:

在 AdView 中,按钮点击事件:

[self removeFromSuperView];

已编辑

如你所愿:完全删除 AdView 并将 Home View 作为 appDelegate 的子视图

我认为您应该在委托中创建一个方法来删除您的子视图并向其添加另一个子视图。为此,您需要将您的委托引用到 AdView 并单击按钮调用该委托的方法

- (void) methodInDelegate

   [AdView.view removeFromSuperView];
   [self performSelector:@selector(aMethodForAdding) withObject:nil afterDelay:0.1];


- (void) aMethodForAdding
 
    [self.view addSubView:HomeView.view];
 

【讨论】:

好的,那么我如何插入新视图作为 appdelegate 视图的子视图

以上是关于如何在运行时删除 UIView 并在 appDelegate 中添加另一个 UIView?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Interface Builder 中存储键/值并在运行时访问它们?

如何将 UIView 锚定到屏幕上的特定位置并在滚动时将其保留在那里

使用 UIView 动画时处理、删除和添加 UILabel

如何删除自定义uiview中的边框线?

如何以编程方式绘制边框并在 UIImageview 周围的文字后将其删除?

如何将子层与 UIView 一起移动?