【问题标题】:How to load multiple views on each button tap when using a UISegmentedVIew使用 UISegmentedVIew 时如何在每个按钮点击时加载多个视图
【发布时间】:2011-11-20 12:58:15
【问题描述】:

我有一个带有 3 个按钮布局的 UISegmentedControl,我用它来控制我拥有的 3 个视图布局 我能够检测到每个按钮上的点击,但是如何为每个视图加载和显示我想要的视图

它们必须加载 1 次并在点击 UISegmentedView 的 ID 时显示

这是一个有多个页面的编辑保存情况..

【问题讨论】:

    标签: iphone uiview uiviewcontroller uisegmentedcontrol tap


    【解决方案1】:

    使用 UISegmentedControl 对象的 selectedSegmentIndex 属性。

    if (segmentedControl.selectedSegmentIndex == 0) {
        NSLog(@"segment 1");
        if (view1 == NULL) {
            view1 = [[UIViewController alloc] init];
            [self.view addSubview:view1.view];
        }
    
        else {
            [self.view bringSubviewToFront:view1.view];
        }
    }
    
    else {
        NSLog(@"segment 2");
        if (view2 == NULL) {
            view2 = [[UIViewController alloc] init];
            [self.view addSubview:view2.view];
        }
    
        else {
            [self.view bringSubviewToFront:view2.view];
        }
    }
    

    【讨论】:

    • 这有问题,因为我的 view1 和 view2 将是 UIView UIViewController 的一个类,它定义了一个类和一个 XIB,self.view addSubview:view1];需要一个 UIView 类型。我怎样才能使用我所拥有的?
    • 已在上面编辑。如果你有两个视图控制器的 XIB,那么你可能想要使用 initWithNibName: bundle: 方法来分配 init。
    • 已经做了,但我希望它们作为子视图并出现在选项卡上方。所以一旦初始化我做了 [self.view addSubview:detailFirstViewControler.view];和 [self.view addSubview:detailSecondViewControler.view];但这带来了所有的观点,我看不到包含的观点。我的想法是将一些 XIB 文件重用为多个选项卡。我试图调整框架的大小,但什么都没有……它仍然全屏显示整个 XIB
    • 您是否正确设置了子视图的框架?
    • 我正在这样做:- (id)initWithNibName --------- detailPatientController = [[PatientEditViewControler alloc] initWithNibName:@"PatientEditViewControler" bundle:nil];然后 [detailPatientController.view setFrame:CGRectMake(0, 0, 200, 100)] ;然后 [self.view addSubview:detailPatientController.view];它以全屏显示 detailPatientController ...隐藏原始 self.view
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2022-11-01
    • 1970-01-01
    相关资源
    最近更新 更多