使用UISegmentedControl在selectedSegmentIndex上使用另一个XIB更改视图

时间:2012-06-15 01:03:27

标签: xcode uiview uiviewcontroller uisegmentedcontrol

我的问题是......

在我的UISegmentedControl上,我在navigationItem上创建了两个按钮,在按钮1上我显示了我自己的类,另一个按钮我需要显示另一个XIB,我唯一缺少的是我如何展示另一个类?

-(IBAction)segmentAction:(id)sender

{

    UISegmentedControl *segmentedControl = (UISegmentedControl *)sender;

    segmentedControl.momentary = YES;

    NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;

    MapViewController *mapController = [[MapViewController alloc]init];(Other class)

    if(selectedSegment == 0) {

        [self.view setHidden:NO];(MOSTRA)

        [mapController.view setHidden:YES];

        NSLog(@"Lista");

    } else {

        [self.view setHidden:YES];

        **[mapController.view setHidden:NO];(Dont show anything)**

        NSLog(@"Mapa");

    }

}

1 个答案:

答案 0 :(得分:0)

在您的代码示例中,我没有看到您使用UIView将地图控制器的addSubview添加到父视图(我认为样本中的self.view)的任何内容。所以它不可见。

从iOS 5开始,您应该使用容器视图控制器来管理从其他UIViewController子类添加的视图。

UIViewController Class Reference

最好的解决方案是,您有一个父控制器,其中包含您要用于切换的两个视图控制器。

或许UITabViewController是一个解决方案,用于在不同的UIViewController之间切换。但我认为你想要一些定制,所以先前的解决方案应该有效。