如何在TabBar控制器的UIVIew中显示Kal的日历?

时间:2012-06-11 21:00:00

标签: objective-c xcode4

我正在使用XCode 4和Storyboard创建一个iPad应用程序。我有一个带有两个UIViews的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”和“window”。我不相信这3行是属于这个应用程序,因为我有TabBar控制器,但我不知道用什么来替换它们来显示日历。

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

1 个答案:

答案 0 :(得分:1)

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

窗口 - >标签栏控制器 - >导航栏控制器 - >根视图控制器

因此,通过将导航栏视图控制器直接添加到窗口,您将完全跳过Tab栏控制器。