【问题标题】:adding Kal Calendar as root controller for tab bar item, not using nav controller添加 Kal 日历作为标签栏项目的根控制器,不使用导航控制器
【发布时间】:2011-08-28 23:49:56
【问题描述】:

Kal 日历控制器的例子都是在应用委托中初始化控制器并推送到一个navigationController。我试过了,它确实有效,但是我需要我的日历成为我的 Tabbar 项目之一的 rootController,该项目已添加到主笔尖中。

我尝试在项目的 nib 中添加一个 UIViewController 类作为根类,然后在视图控制器中初始化日历:

KalViewController *calendar = [[KalViewController alloc] init];
[self.view addSubview:calendar];
[calendar release];

如果我触摸月份、日期等,它会显示但崩溃...

另外,我创建了一个基于 KalViewController 的类,并将其作为我的标签栏项目的根类。但这会立即崩溃而不显示。

也许可以将 KalViewController 直接添加到选项卡栏 viewController 数组中,但是我使用应用程序委托在 nib 中创建了选项卡栏。我不知道如何添加它。

【问题讨论】:

    标签: iphone objective-c ios cocoa-touch


    【解决方案1】:

    我最近不得不这样做,我将日历选项卡留在 MainWindow.xib 之外,然后在 appDelegate 中,我抓取 ViewControllers 的 tabBarControllers 列表,将它们加载到 mutableArray 中,将 KalViewController 插入我想要的位置,然后设置它回到 tabBarController。

    calendarDataSource = [[CalendarDataSource alloc] init];
    // I had to override a few things in the calendar so I subclassed it. You get the idea though
    _kalViewController = [[MyKalViewController alloc] init];
    _kalViewController.dataSource = self.calendarDataSource;
    
    _kalViewController.delegate = _kalViewController;
    UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:_kalViewController] autorelease];
    navigationController.tabBarItem.title = @"Calendar";
    navigationController.tabBarItem.image = [UIImage imageNamed:@"cal-tab.png"];
    NSMutableArray *viewControllers = [self.tabBarController.viewControllers mutableCopy];
    [viewControllers insertObject:navigationController atIndex:1];
    self.tabBarController.viewControllers = viewControllers;
    

    【讨论】:

    • 太棒了!我会让你知道情况如何。因此,将 Kal 作为子视图添加到视图控制器时对您来说也是错误的?
    • 是的,事后看来,如果 Kal 没有完全按照您的意愿进行操作,请不要使用它。我不得不大量定制它的外观,事实证明这是一场噩梦。真的不是 Kal 的错,我早该知道的。
    • 但是没有与默认日历的外观和功能相匹配的替代方案吗?如果可能的话,我只需要将特殊格式作为数据源提供给它;只列出事件。我不确定我是否需要特殊功能。
    • 那么应该很好用。我只是说,如果您需要自定义外观,只需让您自己:)
    猜你喜欢
    • 1970-01-01
    • 2012-12-02
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多