gpt4 book ai didi

objective-c - UINavigationController 子类 - 自定义 Pop

转载 作者:行者123 更新时间:2023-11-29 11:14:26 25 4
gpt4 key购买 nike

与许多其他人一样,我想在 UINavigationController 中使用“后退”按钮时执行操作。我知道一些替代方法,例如添加我自己的按钮并尝试欺骗外观,使用 viewWillDisappear 并在所有将导致 View 消失的非后退操作上设置标签,等等。

但我想尝试的是子类化 UINavigationController 并在 popViewControllerAnimated 中注入(inject)一些东西:

但我无法让简单的测试用例正常工作。这是我尝试过的...

我创建了一个新类 CustomNavigationController,它继承自 UINavigationController。在这里,我更新了 popViewControllerAnimated:

.h:

#import <UIKit/UIKit.h>

@interface CustomNavigationController : UINavigationController

@end

.m:

#import "CustomNavigationController.h"

@interface CustomNavigationController ()

@end

@implementation CustomNavigationController

- (UIViewController *)popViewControllerAnimated:(BOOL)animated{
NSLog(@"pop!");
return [super popViewControllerAnimated:animated];
}

@end

在界面生成器中,我更改了导航 Controller 的类: enter image description here

我错过了什么?每当我在此导航 Controller 中弹出任何 View 时,我都希望记录“弹出”。

最佳答案

我刚刚在 iPhone 5.1 模拟器上测试了完全相同的实现,它工作正常 - 看来问题出在其他地方。

我从单 View 应用程序模板创建了一个空项目,并使用您在问题正文中发布的代码添加了 CustomNavigationController 类。 UIButton 用于将另一个 View Controller 推送到导航堆栈(使用 Storyboard的 segue),并且“POP”消息按预期发布在控制台中。

enter image description here

关于objective-c - UINavigationController 子类 - 自定义 Pop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109480/

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