我可以为一个视图创建2个XIB吗?

时间:2013-07-29 08:31:46

标签: iphone ios ipad xib uisegmentedcontrol

基本上,我想做的是,

我想在每次点击分段控件

上加载2个不同的XIB文件

是否可以加载2个不同的XIB文件?

例如:

当我点击View 1时,我的第一个XIB应该加载,当我点击View 2时,我的第二个XIB应该加载。

有可能吗?

3 个答案:

答案 0 :(得分:4)

你可以使用这样的xib: -

  • 添加两个UIViewUIsegmentController并将其连接到IBOutLate,如下图所示。

enter image description here

  • viewDidLoad secondView中将其隐藏为True,如下所示: -

    - (void)viewDidLoad
    {   
        myview1.hidden=FALSE;
        myview2.hidden=TRUE;
    
        [super viewDidLoad];
    }
    

放置段控件 ValueChange 操作并将Segment控件作为ValueChange连接: -

enter image description here

-(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它看起来像:)

enter image description here

答案 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下的所有视图。您可以迭代/过滤,然后在分段控件上加载所需的视图。