Отобразить карту с помощью функции didSelectRowAtIndexPath - PullRequest
0 голосов
/ 16 марта 2012

Я на самом деле пытаюсь отобразить новый контроллер типа UIViewController MKMapViewDelegate в функции didSelectRowAtIndexPath.У меня есть табличное представление в контроллере, и когда я щелкаю ячейку этого табличного представления, я хочу отобразить новый контроллер типа UIViewController MKMapViewDelegate.

Мой код следующий:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath     *)indexPath
{
// Navigation logic may go here. Create and push another view controller.
UIViewController *mapviewtest=[[MapStation alloc]initWithNibName:@"MapStation"   bundle:nil];
[self.navigationController pushViewController:mapviewtest animated:YES];

//Station *station = nil;
//station = [self.listStation objectAtIndex:indexPath.row];
}

Проблема в том, что когда я нажимаю на любую ячейку таблицы, программа завершает работу с точкой останова на строке:

UIViewController *mapviewtest=[[MapStation alloc]initWithNibName:@"MapStation"   bundle:nil];

Я не знаю, почему это происходит и как устранить эту ошибку.Может быть, вы знаете другой способ сделать это (без использования функции pushviewController).

Жду ваших ответов, ребята; -)

С уважением

Квентин

Ответы [ 2 ]

0 голосов
/ 17 марта 2012

Похоже, вам нужно немного изменить способ настройки приложения.Следуйте приведенному ниже дизайну, и все будет в порядке.Ваша основная проблема звучит так, как будто вы не создаете контроллер навигации, который вы должны сделать.

Внутри делегата приложения:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Create the Window
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // Create RootViewController (i.e. Table View)
    RootViewController *rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];

    // Create the Navigation Controller
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];

    // Make the Navigation Controller the RootViewController
    self.window.rootViewController = navigationController;

    // Display the Window
    [self.window makeKeyAndVisible];

    return YES;
}

Внутри RootViewController:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Create MapStation
    MapStation *mapviewtest = [[MapStation alloc] initWithNibName:@"MapStation" bundle:nil];

    // Push MapStation on to the self.navigationController (i.e you in the RootViewController class right
    // which is a navigation controller so this will work.
    [self.navigationController pushViewController:mapviewtest animated:YES];

    // mapviewtest is retained by the navigationController so release it
    [mapviewtest release];
}
0 голосов
/ 16 марта 2012

В имени Xib отсутствует .xib

UIViewController *mapviewtest=[[MapStation alloc]initWithNibName:@"MapStation.xib"   bundle:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...