Ios 更改此根视图设置

Ios 更改此根视图设置,ios,uinavigationcontroller,uitabbarcontroller,Ios,Uinavigationcontroller,Uitabbarcontroller,我一直在遵循本教程设置带有故事板的tableview 除了在本教程开始时,他从一个tabBarView模板开始,并在其中嵌入了一个UINavigationControl,所有这些都可以正常工作 这就是他提出的代码——它是有效的: UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; UINavigationController *navigationCo

我一直在遵循本教程设置带有故事板的tableview

除了在本教程开始时,他从一个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就会显示出来,但是里面没有数据

干杯,杰夫

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;  
这里,代码获取窗口的根视图控制器,它来自原始项目,是一个选项卡栏控制器。您已删除此项,因此将返回一个导航控制器

您已从视图控制器层次结构中删除了一个包含级别。您的根视图控制器现在是导航控制器。因此,我认为您需要的代码是:

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
AlbumViewController *albumsViewController = [[navigationController viewControllers] objectAtIndex:0];        
albumsViewController.albums = albums;   

什么不起作用?你没有看到你希望看到的东西吗?因此,基本上我想按照教程的要求,用app委托中的数据设置一个UITableView,但我不想从TabBarController开始。基本上就是这样,但如果你看代码的第一部分,它会将TabBar设置为根控制器-但是一旦我触摸并更改它,我就会丢失表中的数据。因此你已经从情节提要中删除了tab视图,你只需要一个导航控制器,其中有一个表视图控制器,或者仅仅是表视图控制器?是的-我已经删除了代码和SB中的TabBarViewController,我已经基于一个ViewController和一个UINavigationController重新制作了这个应用程序-我复制并粘贴了前后混合的所有内容:-)我没有想法:-)好的,是的,工作正常-现在也可以用一个普通的UIViewController启动这个应用程序了吗?因此,没有导航或选项卡栏??是的,只需将视图控制器设置为故事板中的初始视图控制器,然后在启动后,它将成为您的windows根视图控制器。很抱歉,我在请求中出错-我的意思是向UIViewController请求UINavigationController。然后,我可以通过Segue:-)连接到UITableView