我创建了一个mapview,其中包含页面卷曲功能。 mapview有一个工具栏,带有页面卷曲按钮。单击按钮时,mapview页面会卷曲。这是代码。
-(IBAction) onPageCurl:(id)sender{
pageCurlViewController = [[MyMapViewPageCurlViewController alloc] initWithNibName:@"MyMapViewPageCurlViewController" bundle:nil];
[pageCurlViewController.navigationController.toolbar setHidden:NO];
[pageCurlViewController setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[pageCurlViewController setToolbarItems:toolbarItems];
[[self navigationController] presentModalViewController:pageCurlViewController animated:YES];
[pageCurlViewController getMapView:&mapView];
[pageCurlViewController release];
}
当mapview页面卷曲时,我下面有一个新的viewcontroller。新视图控制器具有分段控件,包含3个段。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self.navigationController.toolbar setHidden:NO];
[directionSearchSegmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];
directionSearchSegmentedControl.selectedSegmentIndex = selectedIndex;
UIBarButtonItem *directionSearchSegmentedControlButton = [[[UIBarButtonItem alloc] initWithCustomView:directionSearchSegmentedControl] autorelease];
NSArray *toolbarItems = [NSArray arrayWithObjects: navigatorButton , flexibleSpace, directionSearchSegmentedControlButton, flexibleSpace, pageCurlButton, nil];
[self setToolbarItems:toolbarItems];
[self.navigationController.toolbar setHidden:NO];
}
在点击分段控制器中的每个段时,我有地图的标准/卫星/混合视图。
- (void)segmentAction:(id)sender
{
[self dismissModalViewControllerAnimated:YES];
if([sender selectedSegmentIndex] == 0){
selectedIndex = 0;
pageCurlMapView.mapType = MKMapTypeStandard;
}
if([sender selectedSegmentIndex] == 1){
selectedIndex = 1;
pageCurlMapView.mapType = MKMapTypeSatellite;
}
if([sender selectedSegmentIndex] == 2){
selectedIndex = 2;
pageCurlMapView.mapType = MKMapTypeHybrid;
}
if([sender selectedSegmentIndex] == 2){
}
directionSearchSegmentedControl.momentary = YES;
selectedIndex = directionSearchSegmentedControl.selectedSegmentIndex;
}
页面卷曲功能正常工作。当页面卷曲时,如前所述,我在新视图中有一个分段控件。但是分段控件在IOS 6中无法正常工作。我已经调试并检查过了。在单击片段时,控件不会进入事件方法。 它在以前版本的IOS中仍然可以正常工作,但在IOS 6中却没有。不能弄明白,出了什么问题。需要帮助。
答案 0 :(得分:0)
如果您在应用启动时查看Xcode控制台,您会看到如下消息:
应用程序在应用程序启动结束时应具有根视图控制器
如果是这样,那么您的问题可能是由于需要为iOS 6设置根视图控制器的方式的变化。
有关如何解决问题的信息,请参阅here。
答案 1 :(得分:0)
对不起,如果这有点晚了,但我一直在我的应用程序中做类似的事情。老实说,我只是使用一个简单的切换方法来改变地图类型。代码如下。
- (IBAction)toggle:(id)sender {
switch ([sender selectedSegmentIndex]) {
case 0:
{
[self.mapView setMapType:MKMapTypeStandard];
}break;
case 1:
{
[self.mapView setMapType:MKMapTypeHybrid];
}break;
case 2:
{
[self.mapView setMapType:MKMapTypeSatellite];
}break;
}
}
现在我还没有尝试将它用于多个视图控制器,因此这可能只适用于一个视图控制器。我刚刚开始在iOS上编程,所以请耐心等待..我会尝试将页面卷曲效果添加到我的应用程序中,但到目前为止我所拥有的只是一个地图视图和一个按钮,当它被推动时,放大到用户位置和用户可以更改地图类型..
P.S。这是一个分段控件,设置为名为“toggle”的值更改操作,如果这有助于......