gpt4 book ai didi

ios - 弹出 View Controller 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:41:29 25 4
gpt4 key购买 nike

我有一个带有 .h 和 .m 链接的 xib 文件。在 xib 中有一个带有 textView 的 UIView。我想对该 View 做的是在您单击按钮时将其作为 UIPopViewController 打开。

这是我的代码:

- (IBAction)thisButton:(id)sender
{
popViewController *popVC = [[popViewController alloc] initWithNibName:@"popViewController" bundle:nil];

self.pop = [[UIPopoverController alloc] initWithContentViewController:popVC];

[self.pop setPopoverContentSize:CGSizeMake(220, 120) animated:YES];
[self.pop presentPopoverFromRect:[(UIButton *)sender frame] inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
}

它因以下错误而崩溃。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIPopoverController initWithContentViewController:] called when not running under UIUserInterfaceIdiomPad.'

我不明白这个错误。

最佳答案

UIPopoverController 仅适用于 iPad。在 iOS 8 中你可以使用 UIPopoverPresentationController对于 iPhone 和 iPad,有一个小技巧可以让它看起来像 UIPopoverController,这在 HERE 中有解释。 .


这是您在我提供的链接中看到的 swift 代码的 Objective-C 版本。

@interface SomeViewController : UIViewController <UIPopoverPresentationControllerDelegate>
@end

@implementation SomeViewController

-(void) prepareForSegue:(UIStoryboardSegue *) segue sender:(id) sender
{
if ([segue.identifier isEqualToString:@"PopoverSegue"]) {
UIViewController *controller = segue.destinationViewController;
controller.popoverPresentationController.delegate = self;
controller.preferredContentSize = CGSizeMake(320, 186);
}
}

// MARK: UIPopoverPresentationControllerDelegate

-(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
{
// Return no adaptive presentation style, use default presentation behaviour
return UIModalPresentationNone;
}
@end

关于ios - 弹出 View Controller 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28143309/

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