我正在使用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日历?
答案 0 :(得分:1)
你是对的,你不需要底部3行,但事实上,你不需要任何这些行。如果您正在使用StoryBoards,您应该可以完全从那里设置视图堆栈。您可能需要的唯一事情是将EventKit数据源添加到Kal视图控制器,但您可以从[KalViewController viewDidLoad:]
执行此操作。您的视图堆栈应如下所示:
窗口 - >标签栏控制器 - >导航栏控制器 - >根视图控制器
因此,通过将导航栏视图控制器直接添加到窗口,您将完全跳过Tab栏控制器。