Организация приложений для iOS - PullRequest
1 голос
/ 28 августа 2011

У меня есть опыт работы с C и C ++, но практически нет опыта работы с Objective C или Xcode4.

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

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

Isэто правильное направление, чтобы думать?Или я ужасно не в курсе?

1 Ответ

0 голосов
/ 23 сентября 2011

У меня есть приложение с такими же требованиями. У него есть UITabBar, и на разных вкладках у каждого UITableViewController вверху есть панель навигации UINavigationController.

Вот как мой делегат приложения справляется с этим:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //Create the UITabBarController
    UITabBarController *tabBarController = [[UITabBarController alloc] init];

    //Create the view controllers for our tabs
    UITableViewController *vc1 =     [[UITableViewController  alloc] init];
    UITableViewController *vc2 =     [[UITableViewController  alloc] init];
    UITableViewController *vc3 =     [[UITableViewController  alloc] init];
    UITableViewController *vc4 =     [[UITableViewController  alloc] init];
    UITableViewController *vc5 =     [[UITableViewController  alloc] init];

    //Create the Navigation Controllers for these views
    UINavigationController *nc1 = [[[UINavigationController alloc]
                                    initWithRootViewController:vc1] autorelease];
    UINavigationController *nc2 = [[[UINavigationController alloc]
                                    initWithRootViewController:vc2] autorelease];
    UINavigationController *nc3 = [[[UINavigationController alloc]
                                    initWithRootViewController:vc3] autorelease];
    UINavigationController *nc4 = [[[UINavigationController alloc]
                                    initWithRootViewController:vc4] autorelease];
    UINavigationController *nc5 = [[[UINavigationController alloc]
                                    initWithRootViewController:vc5] autorelease];


    //Make an array containing the view controllers
    NSArray *viewControllers = [NSArray arrayWithObjects:nc1, nc2, nc3, nc4, nc5, nil];

    //The NSArray has retained these controllers, we can now release them.
    [vc1    release];
    [vc2    release];
    [vc3    release];
    [vc4    release];
    [vc5    release];

    [nc1    release];
    [nc2    release];
    [nc3    release];
    [nc4    release];
    [nc5    release];

    //Assign the view controllers to the tab bar.
    [tabBarController setViewControllers:viewControllers];

    //Set tabBarController as rootViewController of window
    [self.window setRootViewController:tabBarController];

    //The window retains tabBarController, we can release our reference
    [tabBarController release];


    [self.window makeKeyAndVisible];
    return YES;
}

Наслаждайтесь!

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