首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止UINavigationBar popViewController动画

阻止UINavigationBar popViewController动画
EN

Stack Overflow用户
提问于 2011-12-16 15:36:59
回答 2查看 4.3K关注 0票数 3

我有以下问题:我已经覆盖了UINavigationControllerpopViewControllerAnimated:(BOOL)animated,因为我想有一个自定义的动画。代码如下:

代码语言:javascript
复制
- (UIViewController *)popViewControllerAnimated:(BOOL)animated 
{
    UIViewController *poppedCtrl = [super popViewControllerAnimated:NO];
    [((customViewController *) self.topViewController) doCustomAnimation];
    return poppedCtrl;
}

不幸的是,UINavigationBar似乎忽略了我显式禁用内置动画,但它仍然是动画。

我必须做些什么才能同时阻止导航栏的动画?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-22 19:08:09

经过一些阅读和实验,我终于发现需要做些什么才能达到预期的行为。

要防止导航栏具有动画效果,仅覆盖(UIViewController *)popViewControllerAnimated:(BOOL)animated是不够的。

还需要创建自定义导航栏并覆盖(UINavigationItem *)popNavigationItemAnimated:(BOOL)animated

代码语言:javascript
复制
- (UINavigationItem *)popNavigationItemAnimated:(BOOL)animated {
    return [super popNavigationItemAnimated:NO];
}

当然,此自定义导航栏也必须是所使用的导航栏(我刚刚在界面构建器中替换了导航控制器使用的导航栏)。

票数 11
EN

Stack Overflow用户

发布于 2015-10-28 04:29:40

如果有人想要禁用推送动画--这对我很有效,在UINavigationBar上重写这个方法:

代码语言:javascript
复制
- (void)pushNavigationItem:(UINavigationItem *)item {
    NSMutableArray* items = [[self items] mutableCopy];
    [items addObject:item];
    self.items = items;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8531165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档