gpt4 book ai didi

iphone - iOS:对正确使用 AppDelegate 感到困惑

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:34:12 25 4
gpt4 key购买 nike

对于 iOS 开发人员来说仍然是个新手(有 asp.net/web 的背景),而且我不认为我已经完全理解所有事情之间的关系。例如,我目前正在构建一个以 NavigationController 开头的应用程序。我很高兴地传入和传出 ViewControllers,一切正常,但现在我需要向导航 Controller 添加一个右键。我已经从这样的 ViewControllers 之一中完成了此操作:

- (void)viewDidLoad
{
UIBarButtonItem *change = [[UIBarButtonItem alloc] initWithTitle:@"CHANGE" style:UIBarButtonItemStylePlain target:self action:@selector(navAlert)];

self.navigationItem.rightBarButtonItem = change;

[change release];

[super viewDidLoad];
}

- (void)navAlert
{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"nav pressed" message:@"You pressed the Change button" delegate:nil cancelButtonTitle:@"Yep" otherButtonTitles:nil];

[alert show];
[alert release];
}

但我不想在每个 Controller 中都这样做 - 像这样的东西应该进入 AppDelegate 并从那里调用吗?

此外,假设我不想从 NavigationController 开始 - 我可以使用 AppDelegate 中的代码来释放 ViewController 并通过单击 ViewController 中设置的按钮将新的直接加载到窗口中吗?

抱歉,如果这是一个有点愚蠢的问题,但我不认为我已经完全掌握了不同层之间的关系、哪些代码可用于哪个 Controller 等。

谢谢

最佳答案

您不应该将与接口(interface)相关的代码放在 appdelegate 中。这就是 ViewController 的用途。如果有所有 viewcontroller 共有的功能,我建议子类化 UIViewController(然后从该子类派生所有其他实例)或在其上编写一个类别。

另一方面,appdelegate 是触发与应用程序生命周期相关的基本事件的好地方,例如设置核心数据上下文或在即将进入后台时保存应用程序状态。

关于iphone - iOS:对正确使用 AppDelegate 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651160/

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