gpt4 book ai didi

ios - 获取 UINavigationBar 委托(delegate)以允许 "back",带有漂亮的动画

转载 作者:技术小花猫 更新时间:2023-10-29 11:24:48 24 4
gpt4 key购买 nike

iPhone 上的场景:

用户点击后退按钮,UINavigationBar委托(delegate)方法(在UINavigationController的子类中实现)返回YES,如下所示:

- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item
{
// Verify stuff...

return YES;
}

现在,根据docs ,保持导航栏和内容同步是应用程序的责任,而这样做的地方是在委托(delegate)方法中

- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item

问题是,didPopItem 仅在导航栏的弹出动画序列完成后调用,所以如果我在那里调用 [self popViewControllerAnimated: NO],网络结果是首先导航栏向后滑动,然后是内容。

这看起来不对。

如果我在委托(delegate) shouldPop... 方法中调用导航 Controller 的 pop...,我会收到一条错误消息,说明我正在重叠动画,并且最终状态不干净。

所以我的问题是,是否有另一种方法可以让 UINavigationController 更改内容,最好使用与导航栏同步的漂亮动画,但又不会在导航栏和导航 Controller 之间造成混淆?

目标操作系统为 iOS 4.2 及更高版本。

我知道我可以创建另一个左键来代替后退按钮,但我发现使用委托(delegate)更简洁,另外,我得到了一个“真正的”后退按钮,这正是我想要的。

最佳答案

如果您使用的是 UINavigationController,则无需自行管理。只需使用 UINavigationController,您就会省去很多麻烦。它将负责弹出内容 View 和导航栏项目。

关于ios - 获取 UINavigationBar 委托(delegate)以允许 "back",带有漂亮的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com