我的应用程序是用UITabController构建的,其工作原理是想象中的。但是,对于我的UITabBar中的一个视图,我想添加一个表,当按下某些东西时,它会带我去某个地方。我想在这张图上做这件事。
我知道如何构建一个表格,填充,并让它去某个地方,但我的问题是,我似乎无法让我的应用程序与表一起运行。我觉得我的连接是关闭的,特别是与appDelegates。在添加appDelegate之前,我已经有了两个UINavigationController文件(.h & .m),因此我真的不知道该做什么。我拿了苹果的simpleTableView教程文件,并把它们拷贝到我的。它还是会崩溃。我甚至复制了那里的appDelegate文件(所以现在我有4个),但同样的交易。这是我正在犯的错误,但总的来说,我只是对委托和联系感到迷茫。
2011-12-12 12:08:50.302 TabbedCalculation68713:207个*终止应用程序由于未登录的异常'NSUnknownKeyException',原因:‘setValue:forUndefinedKey::该类不符合键委托的键值编码。’*第一次抛出时调用堆栈:
如果有人能提供任何帮助,我们将不胜感激。
谢谢!
P.S.我在UITabController的UITabController中更改了一个选项卡指向适当的类和xib文件,所以这不是问题,但我注意到许多教程希望在应用程序委托中将这一行放到navController:[window addSubview:navigationController视图];
但我已经把它设置为tabBarController了。
发布于 2011-12-12 19:31:39
您的应用程序只能使用一组应用程序委托文件。因此,复制示例的应用程序委托文件并不意味着它们正在被利用。您需要在要包含tableview的特定选项卡中设置一个导航控制器。下面是一个示例,通过修改应用程序委托中的didFinishLaunchingWithOptions,在选项卡条控制器中使用导航控制器:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
AllTaskViewController *view1 = [[AllTaskViewController alloc] initWithNibName:@"AllTaskView" bundle:nil];
view1.title = @"All Tasks";
TodayTaskViewController *view2 = [[TodayTaskViewController alloc] initWithNibName:@"TodayTaskView" bundle:nil];
view2.title = @"Today's Tasks";
HistoryViewController *view3 = [[HistoryViewController alloc] initWithNibName:@"HistoryView" bundle:nil];
view3.title = @"History";
SettingsTableViewController *view4 = [[SettingsTableViewController alloc] initWithNibName:@"SettingsTableView" bundle:nil];
view4.title = @"Settings";
UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:view1];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:view2];
UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:view3];
UINavigationController *nav4 = [[UINavigationController alloc] initWithRootViewController:view4];
[view1 release];
[view2 release];
[view3 release];
[view4 release];
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nav3, nav4, nil];
[nav1 release];
[nav2 release];
[nav3 release];
[nav4 release];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}注意:所有4个视图控制器都有一个单独的导航控制器,每个视图控制器都是一个自定义视图控制器。我在这里用了尼布,但你没必要这么做。而且应用程序本身没有主窗口,如果您使用的是主窗口,则需要稍微修改这个窗口。
https://stackoverflow.com/questions/8479580
复制相似问题