如何用另一个视图填充主 ViewController 上的 UIView?

Posted

技术标签:

【中文标题】如何用另一个视图填充主 ViewController 上的 UIView?【英文标题】:How Fill UIView on main ViewController with another View? 【发布时间】:2011-05-23 00:52:58 【问题描述】:

各位大师, 我如何用另一个 VC 填充主 VC 上的 UIView,我制作简单的 ipadd 应用程序,在主视图上我有 2 个按钮和 2 个 UIview,一个视图是主 UIview,主 UIView 再次有 UIview,我想用另一个 NIB 替换(UIViewController )。如果我单击按钮 1 UIview 将填充 NIB1,如果我单击按钮 2 UIView 将填充 NIB2

这是主要的.h

#import "nib1.h"
#import "nib2.h"

@interface multinibViewController : UIViewController 
    IBOutlet UIView *topview;



@property (nonatomic,retain) IBOutlet UIView *topview;

-(IBAction)changeNib1;
-(IBAction)changeNib2;
@end

这是实现我必须填写什么代码?

 -(IBAction)changeNib1

    

    -(IBAction)changeNib2

    

我该怎么做才能变成这样? 谢谢, 更新: ipad的页面布局是这样的

|------------------------------------------------------------|
|   This is MainViewController                               |
|   button 1            button 2                             |
|                                                            |
|  |------------------------------------------------------|  |
|  |          This UIView that i want load                |  |
|  |     from another NIB / UIViewContoller               |  |
|  |                                                      |  |
|  |                                                      |  |
|  |                                                      |  |
|  |                                                      |  |
|  |------------------------------------------------------|  |
|                                                            |
|                                                            |
|   lable  Annother_button   Annother_Object                 |
|                                                            |
.                                                            .
.                                                            .
.                                                            .
|------------------------------------------------------------|

谢谢 skorulis,这行得通,使用此代码

UIViewController *nib1 = [[UIViewController alloc] initWithNibName:@"nib1" bundle:nil];
    [self.topview addSubview:nib1.view];

【问题讨论】:

【参考方案1】:

查看 UINavigationController。它的基本思想是在 UIViewControllers 之间导航,这似乎是你想要做的。

编辑: 尝试在笔尖 1 中执行此操作。

UIViewController n2 = [[nib2 alloc] initWithNibName:nil bundle:nil];
[self.view addSubview:n2.view]; 

只需确保第二个笔尖的背景颜色清晰,这样您就可以看到后面是什么。

【讨论】:

嗨 skorulis 感谢您的回复,我尝试了 uinaviagtionvontroller,这样可以隐藏主 UIviewController,我希望在 mainViewcontroller 上有 UIView 和许多对象,这个 UIView 是我想用另一个 uiviewcontroller 填充的页面的一半,所以 mainUIviewCOntroller 仍然在页面上查看。 嗨 Skorulis,此代码是警告/错误 UIViewController *nib2 = [[nib2 alloc] initWithNibName:nil bundle:nil]; (方法 -alloc 未找到) 嗨 Skorulis,我已经更新了我的问题,这种方式是成功的,但是我如何将此视图委托给主视图? 对不起,不小心把变量和类一样了。我不太清楚您将其委托给主视图是什么意思。 我的意思是,我如何将数据从 Nib2 解析到 MainVC?,我在 nib2 上创建了@protocol,但 nib1.delegate 不存在。还有其他方法吗?

以上是关于如何用另一个视图填充主 ViewController 上的 UIView?的主要内容,如果未能解决你的问题,请参考以下文章

如何用另一个数组创建或填充一个 numpy 数组?

如何用另一个observable填充observable并返回observable

如何用图像作为背景填充 iOS 堆栈视图(UIStackView)?

如何用另一个蒙版数组的值填充蒙版2D数组?

Meteor:你如何用 _id 字段将一个集合中的字段填充到另一个集合中?

Meteor:你如何用 _id 字段将一个集合中的字段填充到另一个集合中?