基本上,我想做的是,
我想在每次点击分段控件
上加载2个不同的XIB文件是否可以加载2个不同的XIB文件?
例如:
当我点击View 1
时,我的第一个XIB应该加载,当我点击View 2
时,我的第二个XIB应该加载。
有可能吗?
答案 0 :(得分:4)
你可以使用这样的xib: -
UIView
或UIsegmentController
并将其连接到IBOutLate,如下图所示。
在viewDidLoad
secondView中将其隐藏为True,如下所示: -
- (void)viewDidLoad
{
myview1.hidden=FALSE;
myview2.hidden=TRUE;
[super viewDidLoad];
}
放置段控件 ValueChange 操作并将Segment控件作为ValueChange连接: -
-(IBAction)segmentedControlIndexChanged{
switch (seg.selectedSegmentIndex) {
case 0:
myview1.hidden=FALSE;
myview2.hidden=TRUE;
break;
case 1:
myview1.hidden=TRUE;
myview2.hidden=FALSE;
break;
default:
break;
}
}
现在运行Project它看起来像:)
答案 1 :(得分:1)
您可以在同一个nib/xib
文件中创建两个视图,并在点击view
上添加特定Segemented control
一个视图在控制器类中已经有outlet
,而对于其他视图,则创建一个IBOutlet
并使用。
答案 2 :(得分:1)
如果我理解你的图像,我可以在同一个xib中看到两个视图。您想要做的是从同一个xib加载两个不同的视图。
您需要使用[NSBundle loadNibNamed:owner:options:]方法来实现此目的。
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyXIBName" owner:self options:nil];
数组nib将保留给定XIB下的所有视图。您可以迭代/过滤,然后在分段控件上加载所需的视图。