gpt4 book ai didi

xcode - 如何使用Storyboard制作可以在代码中使用的popover?

转载 作者:行者123 更新时间:2023-12-04 02:33:25 26 4
gpt4 key购买 nike

我正在构建一个表单集合,每个表单都包含几个字段。一些字段是 UITextField s 将显示日期。我创建了一个名为 DatePickerTextField 的新类,UITextField的后代.当DatePickerTextField我想要一个 UIDatePicker控件出现在 popover .

我的问题是如何使用 Storyboard来实现 popover ?当场景中有一个特定的、可见的控件时,我可以做一个 segue。但是我如何表示一个通用的 popover在我可以附加到任何实例化的场景中 DatePickerTextField变得活跃?

最佳答案

您可以创建未连接到任何控件的 segue,但我认为没有办法从代码中为 popover 指定 anchor 。另一种选择是创建不与任何 segue 连接的 ViewController。编辑 Storyboard时,创建将放置在弹出窗口中的 ViewController,选择它并导航到 Utilities Pane -> Attributes Inspector。将大小设置为自由格式,状态栏为无,指定将用于从代码实例化 ViewController 的唯一标识符。现在您可以通过选择 ViewController 并导航到 Utilities Pane ->Size Inspector 来更改 ViewController 的大小。

之后,您可以从代码创建弹出框:

- (IBAction)buttonPressed:(id)sender {
UIView *anchor = sender;
UIViewController *viewControllerForPopover =
[self.storyboard instantiateViewControllerWithIdentifier:@"yourIdentifier"];

popover = [[UIPopoverController alloc]
initWithContentViewController:viewControllerForPopover];
[popover presentPopoverFromRect:anchor.frame
inView:anchor.superview
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

一个警告是,您需要将 popover 的引用作为类的 ivar 保留,否则它会崩溃,因为 UIPopoverController 将在 buttonPressed 之后被释放和解除分配。返回:
@interface MyViewController : UIViewController {
// ...
UIPopoverController *popover;
// ...
}

关于xcode - 如何使用Storyboard制作可以在代码中使用的popover?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161909/

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