1

基本上,我想做的是,

我想在每次单击分段控件时加载 2 个不同的 XIB 文件

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

例如:

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

可能吗?

4

3 回答 3

4

你可以像下面这样使用xib:-

  • 添加两个UIVieworUIsegmentController 并连接它的 IBOutLate 如下图所示。

在此处输入图像描述

  • viewDidLoadsecondView 中作为隐藏的 True 如下所示:-

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

将段控件ValueChange Action 并与 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;
    }
}

现在运行你的项目,它看起来像:)

在此处输入图像描述

于 2013-07-29T09:14:49.120 回答
1

您可以在同一个文件中创建两个视图,并在单击时nib/xib添加特定视图控制器类中 已有的一个视图,并为其他视图创建一个并使用。viewSegemented controloutletIBOutlet

于 2013-07-29T08:37:58.557 回答
1

如果我理解您的图像,我可以在同一个 xib 中看到两个视图。你想要做的是从同一个 xib 加载两个不同的视图。

您需要使用 [NSBundle loadNibNamed:owner:options:] 方法来实现这一点。

NSArray *nib =   [[NSBundle mainBundle] loadNibNamed:@"MyXIBName" owner:self options:nil];

数组 nib 将保存给定 XIB 下的所有视图。您可以迭代/过滤,然后在段控制单击时加载所需的视图。

于 2013-07-29T08:38:18.000 回答