【问题标题】:Can I create 2 XIBs for one view?我可以为一个视图创建 2 个 XIB 吗?
【发布时间】:2013-07-29 08:31:46
【问题描述】:

基本上,我想做的是,

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

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

例如:

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

有可能吗?

【问题讨论】:

    标签: iphone ios ipad xib uisegmentedcontrol


    【解决方案1】:

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

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

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

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

    放置段控件ValueChange动作并与段控件连接为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;
        }
    }
    

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

    【讨论】:

      【解决方案2】:

      您可以在同一个nib/xib 文件中创建两个视图,并在单击Segemented control 时添加特定的view 一个视图在控制器类中已经有outlet,而其他视图创建一个IBOutlet 并使用。

      【讨论】:

        【解决方案3】:

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

        你需要使用 [NSBundle loadNibNamed:owner:options:] 方法来实现。

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

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

        【讨论】:

          猜你喜欢
          • 2013-04-16
          • 2016-11-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-09
          • 1970-01-01
          • 1970-01-01
          • 2011-06-16
          相关资源
          最近更新 更多