我在我的应用程序中使用 storyboard ,我必须导航到另一个没有动画的视图控制器。我使用自定义segue成功完成它。但是当我回到上一个视图控制器时然后通过使用导航栏默认后退按钮,然后向后移动动画。所以前进它不是动画,后退它是动画。我想停止后退按钮的默认动画。
自定义Seague
// PushNoAnimationSegue.h
@interface PushNoAnimationSegue : UIStoryboardSegue
@end
// PushNoAnimationSegue.m
@implementation PushNoAnimationSegue
-(void) perform{
[[[self sourceViewController] navigationController] pushViewController:[self destinationViewController] animated:NO];
}
@end
使用这段代码我成功进入下一个没有动画的视图控制器,因为-(void) perform
在向前方向被自动调用。当我回来时它没有被调用。所以如果有任何问题请建议我实施或我应该采取其他一些方法。
答案 0 :(得分:1)
希望这会有所帮助
1.导航栏上的自定义按钮
UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(x,y,width,height)];
[btn setImage:[UIImage imageNamed:@"some_image.png"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(popViewController) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationItem.leftBarButtonItem =backButtonItem;
然后
void popViewController()
{
[self.navigationController popViewControllerAnimated:NO];
}
答案 1 :(得分:0)
如果您使用NavigationController,请使用此
[self.navigationController popViewControllerAnimated:NO];
或
[self dismissViewControllerAnimated:NO completion:nil];