gpt4 book ai didi

ios - 通过 topviewcontroller 在自定义类上设置委托(delegate)的简洁方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:37:45 26 4
gpt4 key购买 nike

我已经定义了一个类 NewViewController,它显示了一个用于在应用程序中添加新项目的屏幕,该项目被包装在 UINavigationController 中。我想在这个 UIViewController 上设置一个 delegate,我目前在 prepareForSegue 方法中这样做:

UINavigationController *navController = segue.destinationViewController;
NewViewController *newViewController = (NewViewController *)navController.topViewController;
[newViewController setDelegate:self];

这行得通,但我觉得这不优雅,而且我不应该这样做。获得此结果的最佳方法是什么?

编辑:NewViewController中的delegateNewViewController中的所有字段都被填写并提交时被调用。目前,这是唯一从 NewViewController 委托(delegate)的东西。模态显示 NewViewControllerUIViewController 被设置为 delegate(在本例中为 self)。

最佳答案

我认为这种方法很好,但您可能需要多做一些错误检查以防万一。如果这是一个命名的 segue,您可以检查 segue.identifier 以确保这是您期望的 View Controller 。我也会像这样检查类:

if ([segue.destinationViewController isKindOfClass:[UINavigationController class]])
{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
if ([navController.topViewController isKindOfClass:[NewViewController class]])
{
NewViewController *newViewController = (NewViewController *)navController.topViewController;
[newViewController setDelegate:self];
}
}

关于ios - 通过 topviewcontroller 在自定义类上设置委托(delegate)的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741619/

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