У меня есть mainViewController, который выдвигает detailViewController на экран.Элементы (изображения, заголовок панели навигации, текстовое представление и кнопка) в detailViewController все загружаются из NSMutableDictionary в MainViewController в зависимости от того, какое изображение в нем коснулось.
У меня также есть кнопка в detailViewController, которая при выборе загружает вид карты, который показывает местоположение пользователя.Когда пользователь нажимает кнопку, пин-код сбрасывается, отмечая это место заголовком выноски аннотации.
Я хочу, чтобы заголовок карты и заголовок аннотации были такими же, как заголовок detailViewController, который загружается из NSMutableDictionary MainViewController.
Прямо сейчас я пытаюсь использовать заголовок detailViewController в качествеопределяющий фактор в заголовке карты и заголовке аннотации.Однако это не работает.
Вот мой код в MainViewController .m.
- (void) coverflowView:(TKCoverflowView*)coverflowView coverAtIndexWasDoubleTapped:(int)index{
SomeDetailViewController *detailViewController = [[SomeDetailViewController alloc] initWithNibName:@"SomeDetailViewController" bundle:nil];
if ((int)index == 0) {
NSMutableDictionary *myDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"0002.jpg", @"imagekey",
@"This is tree 0002", @"textkey",
@"0002.image.png",@"imagekey2",
@"0002 title", @"headerkey",
@"www.0003.com", @"address",nil];
NSLog(@"%@", [myDictionary objectForKey:@"imagekey"]);
NSLog(@"%@", [myDictionary objectForKey:@"textkey"]);
NSLog(@"%@", [myDictionary objectForKey:@"imagekey2"]);
NSLog(@"%@", [myDictionary objectForKey:@"address"]);
NSLog(@"%@", [myDictionary objectForKey:@"headerkey"]);
detailViewController.myDictionary = myDictionary;
}
else if ((int)index == 1) {
NSMutableDictionary *myDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"0003.jpg", @"imagekey",
@"This is 0003", @"textkey",
@"0003.image.png",@"imagekey2",
@"0003 title", @"headerkey",
@"www.0003.com", @"address",nil];
NSLog(@"%@", [myDictionary objectForKey:@"imagekey"]);
NSLog(@"%@", [myDictionary objectForKey:@"textkey"]);
NSLog(@"%@", [myDictionary objectForKey:@"imagekey2"]);
NSLog(@"%@", [myDictionary objectForKey:@"address"]);
NSLog(@"%@", [myDictionary objectForKey:@"headerkey"]);
detailViewController.myDictionary = myDictionary;
}
[self.navigationController pushViewController:detailViewController animated:YES];
}
Вот мой код в detailViewController.m.Это загружает строки моего словаря (жирным шрифтом загружается заголовок панели навигации).
- (void)viewDidLoad {
NSString *filePath =[self pathOfFile];
if ([[NSFileManager defaultManager]fileExistsAtPath:filePath]){
NSArray *array = [[NSArray alloc]initWithContentsOfFile:filePath];
myText.text = [array objectAtIndex:0];
}
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(applicationWillTerminate:) name:UIApplicationWillTerminateNotification object:app];
[super viewDidLoad];
imageView .image = [[UIImage alloc] init];
self.imageView.image =[UIImage imageNamed:[(NSMutableDictionary *)myDictionary objectForKey:@"imagekey"]];
imageView2 .image = [[UIImage alloc] init];
self.imageView2.image =[UIImage imageNamed:[(NSMutableDictionary *)myDictionary objectForKey:@"imagekey2"]];
self.myText.text =[(NSMutableDictionary *)myDictionary objectForKey:@"textkey"];
**self.navigationItem.title = [(NSMutableDictionary *)myDictionary objectForKey:@"headerkey"];**
NSLog(@"%@", [myDictionary objectForKey:@"imagekey"]);
NSLog(@"%@", [myDictionary objectForKey:@"imagekey2"]);
NSLog(@"%@", [myDictionary objectForKey:@"textkey"]);
NSLog(@"%@", [myDictionary objectForKey:@"headerkey"]);
}
Здесь я пытаюсь загрузить заголовок панели навигации и заголовок аннотации, используя текущий заголовок панели навигации в качестве определяющегофактор.Это единственное, что я могу использовать, так как нет стабильного элемента.Все в detailViewController загружается из MainViewController NSDictionary.
-(IBAction)pushMap:(id) sender{
SomePositionViewController *somePosition = [[SomePositionViewController alloc] init];
if ((self.navigationItem.title = @"0002 title")) {
NSMutableDictionary *mapDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"0002a title", @"headerkey2",
@"0002 annotation title", @"titlekey",nil];
treePosition.mapDictionary = mapDictionary;
NSLog(@"%@", [mapDictionary objectForKey:@"titlekey"]);
NSLog(@"%@", [mapDictionary objectForKey:@"headerkey2"]);
}
else if((self.navigationItem.title = @"0003 title")) {
NSMutableDictionary *mapDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"0003a title", @"headerkey2",
@"0003 annotation title", @"titlekey",nil];
treePosition.mapDictionary = mapDictionary;
NSLog(@"%@", [mapDictionary objectForKey:@"titlekey"]);
NSLog(@"%@", [mapDictionary objectForKey:@"headerkey2"]);
}
[self.navigationController pushViewController:somePosition animated:YES];
}
У кого-нибудь есть идеи, как мне это сделать?Я ломал голову, но безрезультатно.ПОМОГИТЕ!