Как нажать DetailView без NavigationController на UIViewController - PullRequest
0 голосов
/ 25 февраля 2012

У меня есть приложение ViewBased.Я добавил UITableView на один из контроллеров UIViewController.Он показывает данные, и я реализовал все методы делегата и т. Д. Моя проблема в том, что когда я хочу показать detailView, этого просто не происходит.Мой код:

   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
       DetailViewController *detailViewController =[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];

       NSLog(@"DidSelectRowAtIndexPath");

        // Pass the selected object to the new view controller.
        [self.navigationController pushViewController:detailViewController animated:YES];
        [detailViewController release];
    }

Я вижу, что мне нужен навигационный контроллер, но у меня его нет, и я безуспешно пытался добавить его программно.У меня нет ни одного в моем appDelegate, поэтому мой вопрос заключается в том, нужно ли мне добавить один, чтобы показать подробный вид?Если да, пожалуйста, дайте мне пример кода, как это сделать.Если нет, то какой еще путь?

Я новичок в iOS, поэтому я немного потерян здесь.Пожалуйста, помогите!

Ответы [ 3 ]

1 голос
/ 25 февраля 2012

Чтобы добавить контроллер навигации программно только для этого подробного вида, вам нужно что-то вроде этого:

UINavigationController * controller = [[UINavigationController alloc] initWithRootViewController:detailViewController];

[[detailViewController] release];

[self presentModalViewController: controller animated: YES];

Если вы хотите использовать pushViewController, вам уже нужно иметь контроллер навигации, окружающий вид, который выначинаем с.

0 голосов
/ 25 февраля 2012

Вы можете создать один программно, работая в методе application:didFinishLaunchingWithOptions: участника вашего приложения, например:

UITableViewController *tableViewController = [[[WhateverYourSubclassVCIsCalled alloc] init] autorelease];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableViewController];
window.rootViewController = navController;
[window makeKeyAndVisible];
0 голосов
/ 25 февраля 2012

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

Как ваш главный стол попадает в приложение?Если вы используете перо, очень просто заменить контроллер представления для контроллера навигации со старым контроллером представления, добавленным как дочерний элемент контроллера навигации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...