我正在尝试完成某些操作,并且正在寻找一些提示。我开始研究一个由一个xib文件组成的项目。后来我升级到xcode 5,并很快为我的界面文件的其余部分我开始使用我的故事板,但我保留我的老xib(主要原因是我如何通过它的方法),并简单地将其称为:从xib文件中推入segue而不是在storyboard中?
mapViewController *mapView=[[mapViewController alloc]initWithNibName:@"mapViewController" bundle:nil location:0 option:@"poe"];
最近,我添加了新功能,并且在点击标注后,我想准备显示新视图的细节。 首先在xib界面。我想知道是否可以从我的mapView(不是在storyboard中)准备并调用view/segue(在故事板中)。 或者,如果我可以简单地删除或复制并粘贴我的mapView到我的故事板,然后绘制我的segue连接器到我的新视图。因为我不认为将mapView添加到我的“故事情节”是必要的,但是我仍然想要调用上面提到的方法。 但是,如果这些都不可行,请提出另一种方法。 感谢 UPDATE 我提出我的厦门国际银行,以我的故事板界面不过我面临的一个小问题
当我打电话给我从厦门国际银行的地图会放大到在init
方法提供一个特定的位置。我传递相同的参数,但我有一个小麻烦重建我的旧的结果在我的故事板
if (([receivedRainObject isEqualToString:@"Natural"])) {
// mapViewController *mapView=[[mapViewController //alloc]initWithNibName:@"mapViewController" bundle:nil location:0 option:@"na"];
// self.navigationItem setHidesBackButton:NO animated:NO];
// [self.navigationController setNavigationBarHidden:NO animated:YES];
// [self.navigationController pushViewController:mapView animated:NO];
[self performSegueWithIdentifier:@"countryMap" sender:self];
}
然后在视图准备srgue
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"countryMap"]) {
mapViewController *transferViewController=segue.destinationViewController;
transferViewController.location=0;
[email protected]"na";
}
}
那时的负载地图 位置确实为0,断点显示所有这些代码正在步进,但我提供的坐标区域不是显示的内容(跨度或区域) (但是当我打电话给我的o厦门国际银行LD正常工作)
- (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;
}
我开始移动它等,但得到一些小问题。编辑主要问题 – Sammie
@ user3737880,什么是transferViewController?那是你继续控制的控制器吗?另外,如果您有需要在init方法中运行的代码,则需要为故事板中创建的控制器实现initWithCoder:而不是initWithNibName:bundle :. – rdelmar
是的,这是transfewViewController。我用它来保存或“准备”我想传入的变量。请告知如果没有正确完成。我也显示了我的initWithNibName,但我不明白为什么我需要说initWithCoder。 shouldnt [self performSegueWithIdentifier:@“countryMap”sender:self];已经调用通过旧的initWithNibName传入的变量?并明确表示它正在这样做,但为什么代码执行,而不是地图不显示我想要的位置 – Sammie