2
我使用下面的代碼來覆蓋自定義segue中的執行方法,以在視圖控制器之間移動時實現滑動效果。自定義Segue閃爍
- (void)perform
{
MasterController *sourceController = (MasterController *)self.sourceViewController;
MasterController *destinationController = (MasterController *)self.destinationViewController;
CGRect frame = sourceController.view.frame;
[sourceController.view addSubview:destinationController.view];
[destinationController.view setFrame:CGRectOffset(frame, frame.size.width, 0)];
[UIView animateWithDuration:0.5 animations:^{
[sourceController.view setFrame:CGRectOffset(frame, -frame.size.width, 0)];
} completion:^(BOOL finished) {
[sourceController presentViewController:destinationController animated:NO completion:nil];
[destinationController.view removeFromSuperview];
}];
}
與此代碼類似,遍佈互聯網。問題在於動畫完成後「有時」屏幕閃爍/閃爍/閃爍然後恢復正常。
刪除[destinationController.view removeFromSuperview];
代碼行似乎可以解決問題。但是,這看起來不正確!對?
任何想法如何解決這個問題?
你解決了嗎?我有一個非常類似的實現相同的問題 – Chris
我通過將子視圖控制器添加到一個父視圖控制器來解決它。當我想在控制器之間移動時,我將要移動的控制器添加到屏幕外。然後做動畫,然後刪除不需要的控制器。我不再繼承seglass。 – hasan83