對於我的應用程序的iOS7版本,我正在實施像這樣的側菜單控制 - https://github.com/romaonthego/RESideMenu。這個實現是錯誤的,所以我決定從頭開始重新實現它。我使用本教程http://www.doubleencore.com/2013/09/ios-7-custom-transitions/獲取實用說明。示例代碼很好。但在我的情況下,我需要從UIViewController(帶按鈕水龍頭)轉換到UITableViewController,並重新選擇任何表視圖單元格。自定義UIViewController轉換到UITableViewController與iOS7 API
問題是,當表格視圖中的單元格被選中,並且我正在關閉呈現的視圖控制器時,我在實際動畫之前得到了延遲。
//this cause animation with delay
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.presentingViewController dismissViewControllerAnimated:YES completion:NULL];
}
我注意到,如果選擇單元格後,我點擊呈現tableview中的任何位置,動畫將執行。
我添加使用GCD和固定的問題,一些延遲:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self.presentingViewController dismissViewControllerAnimated:YES completion:NULL];
});
}
但它看起來醜陋給我,也示例代碼教程中,我指出的作品沒有此解決方案,所以我想知道如果我錯過了什麼爲什麼會發生這種情況。 TableView選項設置爲單選,並且tableview單元格選擇樣式設置爲None。
也許我還應該注意到,我在tableview中添加了一些約束條件以使它適合其內容。但我認爲這並不會造成這個問題,就我所知沒有任何限制。
您是否找到答案? –