0

我正在使用 XCode 4 和 Storyboards 创建一个 iPad 应用程序。我有一个带有两个 UIView 的 TabBar 控制器。我在工作区中有我的 iPad 应用程序和 Kal。我正在尝试复制一些 Kal 示例代码以显示日历。这是我复制的内容(改动很小):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  {

//  initialization...
KalViewController *kal = [[KalViewController alloc] init];
kal.title = @"Saori";

//  configuration
kal.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Today" style:UIBarButtonItemStyleBordered target:self action:@selector(showAndSelectToday)];
kal.delegate = self;
EventKitDataSource *dataSource = [[EventKitDataSource alloc] init];
kal.dataSource = dataSource;

// Setup the navigation stack and display it.
navController = [[UINavigationController alloc] initWithRootViewController:kal];
[window addSubview:navController.view];
[window makeKeyAndVisible];

return YES;

}

在最后 3 行(设置导航堆栈并显示它)我收到诸如未声明的“navController”和“窗口”之类的错误。我不相信这 3 行属于这个应用程序,因为我有 TabBar 控制器,但我不知道用什么替换它们来显示日历。

如何获取现有代码并在 TabBar 控制器的 UIView 中显示 Kal 日历?

4

1 回答 1

1

你是对的,你不需要底部的 3 行,但实际上,你不需要这些行中的任何一行。如果您使用 StoryBoards,您应该能够完全从那里设置您的视图堆栈。您唯一需要做的就是将 EventKit 数据源添加到 Kal 视图控制器,但您可以从[KalViewController viewDidLoad:]. 您的视图堆栈应如下所示:

窗口 -> 选项卡栏控制器 -> 导航栏控制器 -> 根视图控制器

因此,通过将 Nav Bar 视图控制器直接添加到窗口中,您将完全跳过 Tab bar 控制器。

于 2012-06-11T21:17:49.567 回答