菜鸟教程小白 发表于 2022-12-13 10:09:08

ios - UIPopViewController 不工作


                                            <p><p>我有一个 .h 和 .m 链接的 xib 文件。在 xib 中有一个带有 textView 的 UIView。当您单击按钮时,我想对该 View 执行的操作是作为 UIPopViewController 将其打开。</p>

<p>这是我的代码:</p>

<pre><code>- (IBAction)thisButton:(id)sender
{
    popViewController *popVC = [ initWithNibName:@&#34;popViewController&#34; bundle:nil];

    self.pop = [ initWithContentViewController:popVC];

    ;
    inView:self.view
                   permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
}
</code></pre>

<p>它因以下错误而崩溃。</p>

<pre><code>Terminating app due to uncaught exception &#39;NSInvalidArgumentException&#39;, reason: &#39;- called when not running under UIUserInterfaceIdiomPad.&#39;
</code></pre>

<p>我不明白这个错误。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>UIPopoverController</code> 仅适用于 iPad。在 iOS 8 中,您可以使用 <a href="https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIPopoverPresentationController_class/index.html" rel="noreferrer noopener nofollow"><code>UIPopoverPresentationController</code></a>适用于 iPhone 和 iPad,还有一个小技巧可以让它看起来像 <code>UIPopoverController</code> 解释 <a href="https://stackoverflow.com/a/25656733/1228075" rel="noreferrer noopener nofollow">HERE</a> .</p>

<hr/>

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

<pre><code>@interface SomeViewController : UIViewController &lt;UIPopoverPresentationControllerDelegate&gt;
@end

@implementation SomeViewController

-(void) prepareForSegue:(UIStoryboardSegue *) segue sender:(id) sender
{
    if () {
      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
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UIPopViewController 不工作,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/28143309/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/28143309/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UIPopViewController 不工作