2011-08-28 21 views
1

Kal日曆控制器的示例全部初始化應用程序委託中的控制器並推送導航控制器。我嘗試過,它確實有效,但是我需要我的日曆作爲我的Tabbar項目中的一個rootController,它被添加到主要的筆尖中。將Kal日曆作爲標籤欄項目的根控制器添加,不使用導航控制器

我試過被添加UIViewController類爲根類在我的筆尖的項目,然後初始化的視圖控制器日曆:

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

它顯示了,但崩潰,如果我碰個月,天等...

另外,我做了一個基於KalViewController的類,並使我的標籤欄項的根類。但是,這會立即崩潰而不顯示。

也許可以將KalViewController直接添加到標籤欄viewController數組中,但是我使用應用程序委託在nib中創建了標籤欄。我不知道如何添加它。

回答

1

我最近不得不這樣做,我離開了MainWindow.xib的日曆選項卡,然後在appDelegate中,我抓住了tabController列表中的ViewControllers,並將它們加載到一個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; 
+0

輝煌!我會讓你知道它是怎麼回事。因此,在將Kal作爲子視圖添加到視圖控制器時,它對您而言也是有問題的? – Adam

+0

簡單,它的工作原理。 – Adam

+0

是的,事後看來,如果Kal沒有做到你想要的東西,就不要使用它。我不得不大量定製它的外觀,它被證明是一場噩夢。不是Kal的錯,我應該知道的更好。 –

相關問題