繁体   English   中英

使用UISegmentedControl切换到MKMapView和UITableView

[英]Use UISegmentedControl to switch to a MKMapView and UITableView

我正在制作一个应用程序,我有一个带有UISegmentedControl的视图控制器,并且想在MKMapView和UITableView之间切换。 在MKMapView中,我想显示一个带有用户当前位置的地图,在TableView中,我想列出一些数据。 而已。

听起来很简单,但是我不知道该如何进行,我试图将视图控制器设置为tableview控制器,然后添加MKMapview,还尝试仅添加视图和简单的视图控制器。 无论如何,有正确或更好的方法吗?

多谢你们!

您可以使用target-action来使分段控件隐藏一个视图,并在更改其值时取消隐藏另一个视图:

- (void)segmentChanged:(id)sender
{
    switch ([sender selectedSegmentIndex]) {
        case 0:
        {
            self.tableView.hidden = NO;
            self.mapView.hidden = YES;
            break;
        }   
        case 1:
        {
            self.tableView.hidden = YES;
            self.mapView.hidden = NO;
            break;
        } 
        default:
            break;
    }
}

将两者都添加为subview

然后只要您想切换就可以

[self.view bringSubviewToFront:YOURVIEW];

干净的方法是在按下按钮后立即切换子视图。

[view1 removeFromSuperView];
[self.view addSubview: view2];

为了获得更好的性能,可以将两个视图都保存为成员变量,这样就不会每次都实例化它们。

这样,您甚至可以添加一个Viewtransition。 (例如翻转或褪色)

同样在iOS5中,您可以编写自己的ViewControllerContainer。 但这对于该任务来说太复杂了。

我将使用2 navigationControllers。

照常声明您的第一个NavigationController,然后在用户点击segmentedControl时,使用另一个navigationController创建tableController,并将其显示为modalViewController。

UINavigationController* modalController = [[UINavigationController alloc] initWithRootViewController:tableViewController];
[modalController setToolbarHidden:NO];
[self.navigationController presentModalViewController:modalController animated:YES];
[modalController release];

然后,当用户点击tableViewController的分段控件时,只需关闭viewController。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM