我在应用中使用故事板,必须导航到另一个没有动画的视图控制器。我使用自定义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是在向前方向上自动调用的。当我回来时,它不会被调用。因此,如果存在任何问题,请建议我或者我应该选择其他方法

最佳答案

希望这会有所帮助

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];
}

10-04 20:59
查看更多