2012-11-04 25 views
1

我想在我的項目中使用Kal日曆。以下是我的理解是,到目前爲止的情況:調用卡爾必須實現的UITableViewDelegate法「didSelectRowAtPath」使用從現有的表視圖Kal日曆和popToRootViewController不工作

  • 的任何視圖控制器

問題:

  • 我的看法控制器調用Kal 已有有一個現有的tableview(其中一個單元會調用Kal)

爲了解決這個問題,我已經嘗試在我的主要的tableview從電池推動的中間視圖控制器如下:

ScheduleViewController *svc = [[ScheduleViewController alloc] init]; 
[svc setTitle:@"Schedule"]; 
[self.navigationController pushViewController:svc animated:YES]; 

從ScheduleViewController的viewDidLoad,我推着實際的卡爾日曆:

KalViewController *kal = [[KalViewController alloc] init]; 
[kal setDelegate:self]; 
[kal setTitle:@"Schedule"]; 
[self.navigationController pushViewController:kal animated:NO]; 

所以一旦我這樣做,我可以讓日曆顯示出來。但是,我似乎無法使用後退按鈕乾淨地返回到我的主菜單。我創建了ScheduleViewController後退按鈕:

[kal.navigationItem 
setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Back" 
                style:UIBarButtonItemStyleBordered 
                target:self 
                action:@selector(test)]]; 

我已經把這個在幾個不同的地方(的viewDidLoad,viewWillAppear中),並不能得到它的工作。當我點擊「返回」時,它仍然進入ScheduleViewController,而不是一路返回。 「測試」永遠不會被調用。我試過popToRootViewController,[[self.presentingViewController presentingViewController] dismissViewController]和其他一些。只是不想工作。

  • 這是最好的方式去使用Kal?
  • 如何使用此方法popToRootViewController(跳過ScheduleViewController)?

謝謝!這是我的第一篇文章,所以請讓我知道,如果有什麼我可以做的,以減少問題的困惑。

回答

0

好吧,終於明白了吧。我最終刪除了中間視圖控制器。我想我只是不明白前面發生的事情......我現在已經做了以下內容:

  • ,而不是我的主視圖控制器(W /現有的tableview)爲代表,我做了KalDataSource也是UITableViewDelegate。所以我的DataSource處理填充日曆和選擇一個事件。

  • 添加ID的數據源如在主視圖控制器的ivar

  • 改 「didSelectRowAtPath」 方法:

    展現dataSource = [[EventsDataSource的alloc] INIT];

    KalViewController * kal = [[KalViewController alloc] init]; [kal setDelegate:dataSource]; [kal setDataSource:dataSource]; [kal setTitle:@「Schedule」]; [self.navigationController pushViewController:kal animated:YES];

現在一切似乎是好的。