0

简而言之,我如何设法从一个 XIB 文件中包含的一组 UIView 加载特定的 uiview?小卖部?如何?

在某些情况下,我希望显示第一个视图而不是第二个,有时我希望显示第三个而不是第一个。它们都是相似的 UIView,但是只能以模态方式显示。我知道要显示哪个 UIView,具体取决于用户与单击按钮的交互。但是问题是我如何具体选择要显示的某个视图然后附加它以模态方式呈现它。

详细来说,这是我到目前为止所做的:

嗨,我的 TestViewController.xib 文件中有三个视图对象,如下所示:

一个 xib 文件中存在 3 个视图

此 xib 的“文件所有者”连接到 TestViewController 类。

在运行时,我以编程方式实例化 TeamViewController 类,如下所示:

TestViewController *tVController = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];

然后我以模态方式呈现视图,如下所示:

    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:ls];
    [nav setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [nav setModalPresentationStyle:UIModalPresentationFormSheet];
    nav.navigationBar.tintColor = [UIColor blackColor];
    [nav setNavigationBarHidden:YES]; 

    [rootViewController.navigationController presentModalViewController:nav animated:YES];
    nav.view.backgroundColor = [UIColor blackColor];
    self.modalNavController = nav;
    [nav release];
    [tVController release];

这一切正常,我的视图已加载,但默认情况下它仅加载其中一个视图 - 自动。我想做的是能够知道如何在实例化 TestViewController 时只加载一个特定的 UIView。我想到实现这一点的一种方法是为它们创建 IBOutlets 并管理这样显示的视图?所以我在类中创建了三个 IBOutlets,然后将它们从 Xib 的 fileown 连接到每个 UIView。这一切都很好。

IBOutlet *view1;
IBOutlet *view2;
IBOutlet *view3;

我能够做这样的事情:

[self.view addSubview:view2]; 

这将正确显示 view2,但不是在模态视图中,因为我在实例化 TestViewController 时会非常喜欢它。

谁能指导我如何实现我的这个目标?

谢谢

4

1 回答 1

1

您应该给每个视图一个唯一的标签,然后使用viewWithTag:

-编辑-

为了使它工作,你可能需要做NSNib *n = [[NSNib alloc] initWithNibNamed:bundle:]

于 2012-06-27T18:55:37.637 回答