TabBarController + TableView с подробными видами - PullRequest
1 голос
/ 05 июля 2011

Я создал приложение TabBar. Я добавил в представление UITableView и загрузил некоторые данные внутрь.

Теперь я не хочу показывать подробности по щелчку строки. Итак, я прочитал несколько статей и узнал, что мне нужен навигационный контроллер и так далее, но куда его вставить? Должен ли я удалить свой UITableView?

Ответы [ 3 ]

2 голосов
/ 05 июля 2011

Просто перетащите UINavigationController в Интерфейсном Разработчике на ваш TabBarController, затем разверните Navigation Controller, укажите Root View Controller на TableViewController.

Это руководство должно помочь: http://blog.willwinder.com/2011/05/xcode4-uitabbarcontroller-with.html

2 голосов
/ 05 июля 2011

Нет, вы не должны удалять свой UITableView, вам нужен UITableViewController, который может использовать ваш UITableView.

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

В этом уроке объясняется, как делать то, что я только что описал, надеюсь, это поможет:

Просмотр таблицы и NavigationController

1 голос
/ 05 июля 2011

Просто добавьте UINavigationController и выдвиньте вид на экран

EDIT: Вот как программно добавить NavigationController (например, в вашем AppDeleagte)

  UIViewController  *viewController1, *viewController2;

    viewController1 = [[[UIViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil] autorelease];
    UINavigationController *navigationcontroller = [[[UINavigationController alloc] initWithRootViewController:viewController1] autorelease];

    viewController2 = [[[UIViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil] autorelease];

    self.tabBarController = [[[UITabBarController alloc] init] autorelease];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationcontroller, viewController2, nil];

Если у вас есть табличное представление в Viewcontroller1, вы можете получить доступ к Navigationcontroller, используя self.navigationController например, в didSelectRowAtIndexPath чтобы открыть DetailView

например.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...