Ios 带有TabBarController的SimpleDrillDown示例

Ios 带有TabBarController的SimpleDrillDown示例,ios,uitabbarcontroller,xcode4.3,Ios,Uitabbarcontroller,Xcode4.3,我一直在尝试苹果的SimpleDrillDown示例,并试图将其放入选项卡栏。问题是视图现在没有显示,我知道是应用程序委托中的以下代码导致了它。我正在努力改变它,以适应tabbar,并将感谢一些指针 - (void)applicationDidFinishLaunching:(UIApplication *)application { // Create the data controller and pass it to the root view controller. UINav

我一直在尝试苹果的SimpleDrillDown示例,并试图将其放入选项卡栏。问题是视图现在没有显示,我知道是应用程序委托中的以下代码导致了它。我正在努力改变它,以适应tabbar,并将感谢一些指针

- (void)applicationDidFinishLaunching:(UIApplication *)application {

  // Create the data controller and pass it to the root view controller.
  UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
  RootViewController *rootViewController = (RootViewController *)[[navigationController viewControllers]objectAtIndex:0];

  DataController *controller = [[DataController alloc] init];
  rootViewController.dataController = controller;
  self.dataController = controller;
}
我已将其替换为以下内容,但此行
EatCatTVC*rootViewController=(rootViewController*)[[navigationController-viewControllers]objectAtIndex:0]抛出一个错误

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  // Override point for customization after application launch.
  UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
  // Create the data controller and pass it to the root view controller.

  EatCatTVC *rootViewController = (RootViewController *)[[navigationController viewControllers]objectAtIndex:0];
  DataController *controller = [[DataController alloc] init];
  rootViewController.dataController = controller;
  self.dataController = controller;
  return YES;
}

您的代码失败,因为您正在访问不存在的对象

EatCatTVC *rootViewController = (RootViewController *)[[navigationController viewControllers]objectAtIndex:0];
这一行中的
navigationController
在您的“修改”版本中不存在

确保将“rootController”设置为
UITabBarController
class(我假设您在Interface Builder中设置了此选项)


然后使用
setViewControllers:animated:
uitabarcontroller'实例提供(例如)
UIViewController`应该存在的实例。

您缺少
[self.window makekeyeandvisible]
这在原始示例代码中任何地方都不适用。您正在询问
navigationController
以获取控制器,但它已不再出现在您的更新版本中。谢谢。我用storyboard设置它,这样它就可以在表视图和NSArray中“工作”,然而simpledrilldown正是我的应用程序所需要的。第一个选项卡是详细视图,第二个选项卡是tableview,但数据无法加载。rootController是故事板中的tabbar控制器,设置为UITabBarController。我将尝试setView。不好-我似乎无法让它工作,我现在完全对代码感到困惑,但感谢您的帮助,我有以下代码可以工作,但有一个错误“No visible@interface for EatCatTVC声明选择器'ViewController'
(void)ApplicationIDFinishLaunching:(UIApplication*)应用程序{UITabBarController*tabBarController=self.window.rootViewController;EatCatTVC*EatCatTVCnav=[[tabBarController viewControllers]objectAtIndex:0];EatCatTVC*EatCatTVCnav=[[DataController alloc]init];eatCatTVC.dataController=controller;self.dataController=controller;}
这通常意味着,你要么忘记导入你正在使用的类的头文件,要么没有声明这样的属性。这也是我的想法,但一切都在那里。我将尝试不同的方法,直到我更熟悉objective C。