Dav*_*d U 10 xcode storyboard popover
我正在构建一个表单集合,每个表单包含几个字段.某些字段是UITextField显示日期的字段.我创建了一个名为DatePickerTextField的后代,一个后代UITextField.当点击a时DatePickerTextField,我希望UIDatePicker控件出现在popover.
我的问题是如何使用故事板来实现popover?当场景中有特定的可见控件时,我可以做一个segue.但是,如何popover在场景中表示我可以附加到任何DatePickerTextField变为活动的实例化的泛型?
Joh*_*who 36
您可以创建未连接到任何控件的segue,但我认为没有办法为代码中的弹出窗口指定锚点.另一种选择是创建未与任何segue连接的ViewController.编辑故事板时,创建将放置在弹出窗口中的ViewController,选择它并导航到Utilities窗格 - > Attributes Inspector.将Size设置为Freeform,Status Bar设置为None,指定将用于从代码实例化ViewController的唯一标识符.现在,您可以通过选择View并导航到Utilities窗格 - > Size Inspector来更改ViewController的大小.
之后,您可以从代码创建popover:
- (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];
}
Run Code Online (Sandbox Code Playgroud)
需要注意的是,您需要将popover引用为类的ivar,否则它将崩溃,因为UIPopoverController将在buttonPressed返回后释放并释放:
@interface MyViewController : UIViewController {
// ...
UIPopoverController *popover;
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25800 次 |
| 最近记录: |