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