如何使用xib插入子视图?

Posted

技术标签:

【中文标题】如何使用xib插入子视图?【英文标题】:How to insert a subview with xib? 【发布时间】:2010-10-30 22:50:32 【问题描述】:

我对拥有多个视图感到很困惑。我只想在我的主视图上有一个按钮来激活一个新视图,而这个新视图又会有一个返回主视图的 (x) 按钮。对于我的生活,我无法弄清楚如何使用两个单独的 .xib 文件来做到这一点。如何做到这一点?

谢谢!

【问题讨论】:

【参考方案1】:

将实用程序应用程序用作模板可能是最简单的。

从那里,您可以看到如何加载视图控制器和 nib 以调出新视图以及如何退出它。

【讨论】:

我一直在研究它,但无济于事。哦,是时候回去看书了。 ;) 在实用程序应用程序中,特别查看 MainViewController 上的 - (IBAction)showInfo:(id)sender 函数,然后查看 FlipsideViewcontroller 上的 - (IBAction)done:(id)sender【参考方案2】:

其实我是这样解决的:

 NewViewController *new = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:nil];
new.delegate = self;
new.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:new animated:YES];
[new release];

【讨论】:

您也可以使用[self.view addSubview:new.view] 并创建自己的动画。【参考方案3】:

您使用的是导航控制器,对吧?

在与主视图上的按钮点击关联的 IBAction 上,放置

NewViewController *newView = ... // [alloc - init your view here if you haven't already]
[self.navigationController pushViewController:newView animated:YES];

在 newView 上的按钮上,

[self.navigationController popViewControllerAnimated:YES]

【讨论】:

不,它实际上不是导航控制器。 您应该考虑使用导航控制器,因为这是推荐的方式。除此之外,您可以考虑使用 view.hidden、[view bringSubviewToFront:]、[view sendSubviewToBack:] 等来显示您需要的内容。 我实际上做了一个稍微不同的方式,看看我的回答。不过感谢您的帮助! 哦,你想要一个模式屏幕。你应该在你的问题中提到,让事情变得更容易。 :P

以上是关于如何使用xib插入子视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用来自 xib 文件的任何子视图(在 xib 中创建)的多个副本

如何使用 XIB 的子视图实现 UIScrollView

如何在 xib 文件中使用子视图和超级视图之间的纵横比?

如何从一个 XIB 中的不同 UIViewController 文件控制第二个 UIView(子视图)

如何从xib父视图获取子视图

如何使 xib 子视图与 Swift 中的超级视图交互?