изменение этой настройки корневого представления - PullRequest
0 голосов
/ 14 декабря 2011

Я следовал этому руководству, чтобы настроить просмотр таблиц с раскадровкой.

Все работает, за исключением того, что в начале урока он начинает с шаблона tabBarView и в него встраивает UINavigationControl.

Итак, это код, который он придумал - который работает:

    UITabBarController *tabBarController = 
(UITabBarController *)self.window.rootViewController;

UINavigationController *navigationController = 
[[tabBarController viewControllers] objectAtIndex:0];

AlbumViewController *albumsViewController = 
[[navigationController viewControllers] objectAtIndex:0];
albumsViewController.albums = albums;

Что входит в состав:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:      (NSDictionary *)launchOptions
{
albums = [NSMutableArray arrayWithCapacity:5];
Album *album1 = [[Album alloc] init];
Album *album2 = [[Album alloc] init];
Album *album3 = [[Album alloc] init];
Album *album4 = [[Album alloc] init];
Album *album5 = [[Album alloc] init];

album1.albumName = @"Graduation";
album2.albumName = @"Dark and Twisted Fantasy";
album3.albumName = @"Torches";
album4.albumName = @"Nothing But The Beat";
album5.albumName = @"Angles";

album1.artist = @"Kanye West";
album2.artist = @"Kanye West";
album3.artist = @"Foster The People";
album4.artist = @"David Guetta";
album5.artist = @"The Strokes";

album1.rating = 5;
album2.rating = 5;
album3.rating = 5;
album4.rating = 5;
album5.rating = 5;

[albums addObject:album1];
[albums addObject:album2];
[albums addObject:album3];
[albums addObject:album4];
[albums addObject:album5];

UITabBarController *tabBarController = 
(UITabBarController *)self.window.rootViewController;

UINavigationController *navigationController = 
[[tabBarController viewControllers] objectAtIndex:0];

AlbumViewController *albumsViewController = 
[[navigationController viewControllers] objectAtIndex:0];
albumsViewController.albums = albums;

// Override point for customization after application launch.
return YES;
}

Эта часть размещена в AppDelegate.m Я действительно все пробую, но ничего не получается.

Любая помощь будет здорово: -)

PS Если я уберу tabView или закомментирую первый бит кода, будет показано TableView, но в нем нет данных.

Приветствия Джефф

1 Ответ

1 голос
/ 14 декабря 2011
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;  

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

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

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
AlbumViewController *albumsViewController = [[navigationController viewControllers] objectAtIndex:0];        
albumsViewController.albums = albums;   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...