gpt4 book ai didi

iOS 从 View Controller 关闭 popovercontroller

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

我正在研究 SO,并认为我已经弄清楚如何做到这一点,但我的测试失败了。我试图从它启动/包含的 View Controller 中关闭一个popovercontroller(我对poc和vc的关系仍然有点模糊)。

在我的 View Controller .h 中,我有这个:

@interface OAI_vcOperatingRooms : UIViewController {

OAI_ColorManager* colorManager;
OAI_FileManager* fileManager;

UIPopoverController* myPopOverController;

}

@property (nonatomic, weak) UIPopoverController* myPopOverController;

- (void) closeVC : (id) sender;

在 .m 文件中

UIButton* btnClose = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnClose addTarget:self
action:@selector(closeVC:)
forControlEvents:UIControlEventTouchDown];
[btnClose setTitle:@"Close" forState:UIControlStateNormal];
btnClose.frame = CGRectMake(10.0, 210.0, 160.0, 40.0);

[self.view addSubview:btnClose];

- (void) closeVC : (id) sender {

[myPopOverController dismissPopoverAnimated:YES];
}

在调用 popovercontroller 的 uiview 中,我引用了 viewcontroller 并添加了以下内容:

//operating rooms
controller2 = [[OAI_vcOperatingRooms alloc] initWithNibName:@"OAI_vcOperatingRooms" bundle:nil];
popoverController2 = [[UIPopoverController alloc] initWithContentViewController:controller2];

controller2.myPopOverController = popoverController2;

没有错误,但当我点击关闭按钮时没有任何反应。是否可以从 VC 中引用 POC?

谢谢

最佳答案

我相信 ott 的评论是有道理的 - 尝试使用 strong 属性而不是 weak 属性。 weak 属性很可能在最后一次使用后立即被 ARC 设置为 nil。 strong 属性将在其父对象(在本例中为您的 UIViewController 子类)的生命周期内一直存在,除非您将其设置为 nil早。

注意:您的界面中可能不需要 UIPopoverController *myPopOverController;,因为 Xcode 会自动生成 _myPopOverController 作为支持变量。

关于iOS 从 View Controller 关闭 popovercontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13573055/

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