gpt4 book ai didi

objective-c - 第二次启动 View Controller 后 Superview 为零

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

我花了几个小时,但我无法弄清楚这一点。我有一个详细 View Controller (UITableView),在此处启动:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

EventLocationDetailController *newDetailViewController = [[EventLocationDetailController alloc] initWithNibName:@"EventLocationDetailController" bundle:nil];
self.eventDetailController = newDetailViewController;
[self.navigationController pushViewController:self.eventDetailController animated:YES];

[newDetailViewController release];

}

在详细 View Controller 中有一个按钮方法,它调用以下方法来显示滑入滑出动画以确认用户的选择:

-(void)confirmLastActionWithMessage:(NSString *)message {

ConfirmActionViewController *newConfirmActionViewController = [[ConfirmActionViewController alloc] initWithNibName:@"ConfirmActionViewController" bundle:nil];
self.confirmActionViewController = newConfirmActionViewController;
[newConfirmActionViewController release];

[[self.view superview] addSubview:self.confirmActionViewController.view];

}

ConfirmActionViewController 调用的协议(protocol)方法指示动画已完成。

-(void)didFinishConfirmDisplay:(UIView *)viewToRemoveFromSuperview {

[viewToRemoveFromSuperview removeFromSuperview];
}

我第一次按下按钮时效果非常好。如果我弹出详细 Controller 并将其推回堆栈并再次按下按钮,则不会发生任何事情,并且每次调用该方法时详细 Controller 的 super View 都为零。 Superview 在详细信息 View 的 viewWillAppear 方法中不为 nil,只有当它到达confirmLastActionWithMessage 方法时。其间不发生其他用户交互。如何取回 super View ?我有一个类似的代码,可以在没有动画的情况下工作。

我还注意到,详细 View Controller 在从堆栈中弹出时没有调用 dealloc。不知道问题出在哪里。

谢谢。

编辑1

好的。我用以下代码替换了 addSubview 行:

[self.view insertSubview:self.confirmActionViewController.view atIndex:0];

并且动画 View 出现在其中一个表格单元格的下方。表格单元格之一可以窃取 super View 吗?

最佳答案

嗯,我真的不明白为什么你应该将 subview 添加到 super View 。为什么不将其添加到 self.view

我可能无法解释为什么没有 super View ,但尝试将 Controller View 添加到 self.view 或

[[[[UIApplication sharedApplication] delegate] window] addSubview:yourview];

这会将 View 呈现在所有内容之上。

关于objective-c - 第二次启动 View Controller 后 Superview 为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315375/

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