我一直致力于一个程序,在我的uisplitview中单击一个单元格时,会加载一个以特定区域为中心的地图。这工作得很好。但是。因为新的功能需要将我的xib放入我的故事板。当我点击单元格来调用我的地图时...地图确实加载但是它并不以它应该的区域为中心而且我不知道为什么因为该代码似乎运行(添加了断点)
以下是" Natural"字段被选中。 (注释的代码是我的原始代码...注意我传入的变量)下面是sergue的代码
最后,我不确定为什么地图在我使用[self performSegueWithIdentifier:@"countryMap" sender:self];
时无法正常工作但在我使用
mapViewController *mapView=[[mapViewController alloc]initWithNibName:@"mapViewController" bundle:nil location:0 option:@"na"];
[self.navigationController pushViewController:mapView animated:NO];
唯一的区别是当我使用sergue时,init
方法(底部发布的代码)没有运行。但正如我在添加断点之前所说的那样,我发现viewDidLoad
中的代码确实运行了
if ( ([receivedRainObject isEqualToString:@"Natural"])) {
// mapViewController *mapView=[[mapViewController alloc]initWithNibName:@"mapViewController" bundle:nil location:0 option:@"na"];
// [self.navigationController pushViewController:mapView animated:NO];
[self performSegueWithIdentifier:@"countryMap" sender:self];
}
然后在所说的Sergue中请注意我是如何再次传递这些变量的。 (我想知道这样做是否有问题
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"countryMap"]) {
mapViewController *transferViewController=segue.destinationViewController;
transferViewController.location=0;
transferViewController.option=@"na";
}
}
然后在视图中加载了地图 位置确实调到0,断点显示所有这些代码都是通过步进但我提供的坐标区域不是正在显示的内容。(跨度或区域) (但是,当我打电话给我的旧xib时,它工作正常)
- (void)viewDidLoad
{
[super viewDidLoad];
{
// Do any additional setup after loading the view from its nib.
if (location==0)
{
CLLocationCoordinate2D location1;
location1.latitude=(double)15.435786;
location1.longitude=(double)-61.318447;
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta=0.50;
span.longitudeDelta=0.40;
region.span=span;
region.center= location1;
[mapView setRegion:region animated:TRUE];
[mapView regionThatFits:region];
}
}
我的mapview的INIT
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil location:(int)num option:(NSString *)row
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
self.location=num;
self.option=row;
}
return self;
}
答案 0 :(得分:0)
鉴于您的意见,唯一合乎逻辑的解释是没有连接到mapView的IBOutlet。如果将视图从xib文件移动到故事板,则连接到文件所有者的任何IBOutlet都不会随视图一起传输,因为故事板中不存在文件所有者。因此,您需要重新制作连接到文件所有者的任何插座。