программно создать uitableview - PullRequest
0 голосов
/ 23 августа 2011

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

Я хотел бы знать, как создать новое табличное представление с помощью меню uinavigationcontroller, но с общей панелью uitabbar, поскольку я впервые пробую что-либо подобное, обычно просто придерживаюсь шаблонов яблок.

Вот общая структура того, чего я хочу достичь, будет очень признателен за любой пример кода с комментариями и предложениями, и оттуда я смогу проработать его сам, это больше вопрос о том, где, черт возьми, я начинаю :)

enter image description here

Пока у меня настроено главное окно с UIAction, перехватывающим различные нажатия кнопок, мне нужно выяснить, как разрешить всем дочерним элементам делиться определенной UITabbar, а затем как настроить так, чтобы отдельные ветви имели собственный UINavigationController. меню при необходимости.

это мой UIAction

//Delegate.m
//--- Caputer button clicks ---
- (IBAction)buttonClick: (UIButton *) sender
{
    if ([sender isEqual:orangeButton]) {
        NSLog(@"orangeButton Pressed");
    }
    else if ([sender isEqual:blueButton]) {
        NSLog(@"blueButton Pressed");
    }
    else if ([sender isEqual:greenButton]) {
        NSLog(@"greenButton Pressed");
    }
    else if ([sender isEqual:purpuleButton]) {
        NSLog(@"purpleButton Pressed");
    }
}

Ответы [ 3 ]

1 голос
/ 23 августа 2011

Если вы создали «приложение на основе TabBar», то добавить навигационный контроллер для нужной вкладки довольно просто. Перетащите «UINavigationController» внутри «Контроллер панели вкладок» в главное окно:

enter image description here

Что касается «Как генерировать табличные представления», то самым простым способом является создание общего табличного представления, назовите его LevelTableView.h / .m файл (и он может иметь свой собственный .xib), где Вы можете добавить все, что пожелаете, а затем продолжать создавать новые ViewControllers, например, на уровне этого tableView:

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
    LevelTableView *anotherLevel = [[LevelTableView alloc] initWith...];
    [self.navigationController pushViewController:anotherLevel animated:YES];
    [anotherLevel release];
}

Дело в том, что этот "LevelTableView" создается один раз, но создается различное время для каждого уровня, который вы хотите добавить, содержимое - это единственное, что изменяется.

0 голосов
/ 23 августа 2011

У меня точно что-то подобное. Что я делаю, так это то, что я создал другой класс, который я называю «TabBarController» и в котором я инициализирую все различные представления, которые идут на мои вкладки:

    UIViewController *viewController1 = [[FirstTab alloc] initWithNibName:@"FirstTab" bundle:NSBundle.mainBundle];
    UINavigationController *firstNavController = [[UINavigationController alloc]initWithRootViewController:viewController1];        
    UIViewController *viewController2 = [[SecondTab alloc] initWithNibName:@"SecondTab" bundle:NSBundle.mainBundle];
    UINavigationController *secondNavController = [[UINavigationController alloc]initWithRootViewController:viewController2];
    myTabBarController = [[UITabBarController alloc] init];
    myTabBarController.viewControllers = [NSArray arrayWithObjects:firstNavController, secondNavController, nil];    

Затем, когда пользователь нажимает одну из кнопок на главном экране, это то, что я делаю:

- (IBAction)yourAction:(id)sender {  

TabBarController *tabBarController1 = [[TabBarController alloc] init];
tabController.selectedIndex = 1; ==> chose which tab you want to show 
[[[UIApplication sharedApplication]delegate].window setRootViewController:tabBarController1.myTabBarController];

}

Хорошо справляется с работой.

0 голосов
/ 23 августа 2011

Добавьте навигационные контроллеры в контроллер вкладок.Затем скройте NavigationController и в соответствии с вашей схемой используйте панели инструментов для всплытия и навигации по вашим представлениям.

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