我有一個UIScrollView
與多個頁面,每個包含UITableViewController
(類似於提醒 - 應用程序)。 單擊這些UITableViewControllers
中的每一箇中的單元格都會導致DetailViewController
被推送。UIScrollView重疊彈出UIViewController
但是,當DetailViewController
被彈出時,它會立即消失在UIScrollView
後面,而不是順利滑走。我可以看到UIScrollView
的下一頁滑開,但是當DetailViewController
從最後一頁被按下時,轉換看起來很好,因爲UIScrollView
上沒有可能與DetailViewController
重疊的內容。
編輯
這是我如何創建視圖控制器層次(簡體):
ScheduleViewController.m:
- (void) viewDidLoad {
// ...
for (int i = 0; i < 3; ++i) {
MyTableViewController *myTableViewController = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:nil];
[self.scrollView addSubview:myTableViewController];
[self addChildViewController:myTableViewController];
[myTableViewController didMoveToParentViewController:self];
}
這裏是 tableView:didSelectCellAtIndexPath:
在MyTableViewController
:
(void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// ...
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
DetailViewController* detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];
}
}
我在這裏做錯了什麼?這種行爲是否有任何解決方法?
是否將'UIScrollView'設置爲'clipToBounds'(該選項在界面生成器中稱爲「剪輯子視圖」)的超級視圖?正如你注意到的那樣,看起來'UIScrollView'可能在超視圖上運行,因爲它的尺寸非常大,並且導致你的動畫看起來很糟糕。削減它應該防止發生,但我對滾動視圖的經驗是有限的。 – 2012-08-07 13:33:25
* facepalm *這正是問題所在 - 今天編碼太多。謝謝!如果您將您的評論添加爲答案,我會將其標記爲已接受且已註冊。 – 2012-08-07 13:41:38