gpt4 book ai didi

objective-c - NSInvalidArgumentException 错误。不在 UIUserInterfaceIdiomPad 下运行

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

虽然我明白为什么我收到错误

'',原因:'-[UIPopoverController initWithContentViewController:] 不在 UIUserInterfaceIdiomPad 下运行时调用。'

纠正它变得有点棘手。我的 pop over 仅在 ipad 上需要,在 iPhone 版本上不需要。我省略了 iphone if 语句 的任何代码,但仍然崩溃了。 。假设我必须调用 iPhone 上的 View 及其通用应用程序,我只是在 if iphone 语句 中调用 Nib ,但这也不起作用。

 - (IBAction)popZs:(id)sender {  




if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {

if ([popoverController isPopoverVisible]) {
[popoverController dismissPopoverAnimated:YES];
} else {

[self->popoverController setPopoverContentSize: CGSizeMake(601, 571)];

[popoverController presentPopoverFromRect:((UIButton *)sender).bounds
inView:sender
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];

}



}
else {

/////using iPhone/////not sure how to handle this spart
zsTablePop *pop = [[zsTablePop alloc] init];
pop.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[pop presentModalViewController:pop animated:YES];



}

即使我使用 if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {

仍会出现相同的错误

创建弹出窗口

.m


#import "ICCircuitDetails.h"
#import "zsTablePop.h" ///////////////pop over xib/////

@interface ICCircuitDetails ()



{
zsTablePop *controller;
UIPopoverController *popoverController;
}


///////more code/////////////


- (id)initWithCircuit:(Circuit *)circuit
{


self = [super initWithCertificate:circuit.distributionBoard.certificate];
if (self) {
self.circuit = circuit;
[[NSBundle mainBundle] loadNibNamed:@"ICCircuitDetails" owner:self options:nil];
self.view.contentSize = CGSizeMake(self.contentView.frame.size.width, self.contentView.frame.size.height);

///////////other code here/////////////////

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)

controller = [[zsTablePop alloc] initWithNibName:@"zsTablePop" bundle:nil];
popoverController = [[UIPopoverController alloc] initWithContentViewController:controller];

最佳答案

您的错误消息表明您尝试实例化弹出窗口。代码仅用于呈现它。您还需要处理实例化。

关于objective-c - NSInvalidArgumentException 错误。不在 UIUserInterfaceIdiomPad 下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12735253/

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