編集:私は自分の質問に対する答えを見つけました。私の投稿の一番下を見てください。
UIViewController
プログラムでをプッシュしようとすると、アニメーションの問題が発生didSelectRowAtIndexPath
しUITableView
ます。このコードを iOS 6 で実行すると、正常に動作します。iOS 7 では、アニメーションがおかしくなりました (画面の約 20% を左に動かしてから消えます)。ストーリーボードでこれを行うと、アニメーションは問題ありません。何か不足していますか、ストーリーボードを使用せずにこれを回避する方法はありますか?
// This is a cut down example.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *viewController = [[UIViewController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
}
これは、tableView が消える直前の様子です。なぜこれを行うのか理解しています。これは、ストーリーボードを使用する場合と同様に、プッシュされる新しいビューがその上をスライドしてアニメーション化する必要があるためです。何らかの理由で、プログラム的には機能しません。
編集:これは私が見逃したすべてです 何らかの理由で backgroundColor を設定する必要があります。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *viewController = [[UIViewController alloc] init];
[viewController.view setBackgroundColor:[UIColor orangeColor]];
[self.navigationController pushViewController:viewController animated:YES];
}