【问题标题】:Display fullscreen view controller from UIInputViewController从 UIInputViewController 显示全屏视图控制器
【发布时间】:2015-06-18 16:07:44
【问题描述】:

我目前正在通过扩展为 iOS 8 构建自定义键盘。当用户在键盘视图上按下某个按钮时,我想呈现一个全屏模式视图控制器。当我尝试呈现视图控制器时,它会尝试呈现在键盘视图的范围内。我将[self presentViewController:animated:completion:] 与实例化的视图控制器一起使用。无论如何要呈现全屏视图控制器吗?类似于照片编辑扩展(显示全屏视图控制器)

谢谢

【问题讨论】:

  • “呈现全屏视图控制器”是什么意思?您呈现的视图控制器的框架是否与窗口的框架不匹配?

标签: ios uiviewcontroller keyboard ios8-extension uiinputviewcontroller


【解决方案1】:

您应该增加键盘的高度,然后展示您的视图控制器。试试这样的:

- (void) presentVC{
         NSLayoutConstraint *_heightConstraint = [NSLayoutConstraint constraintWithItem:self.view
                                                         attribute:NSLayoutAttributeHeight
                                                         relatedBy:NSLayoutRelationEqual
                                                            toItem:nil
                                                         attribute:NSLayoutAttributeNotAnAttribute
                                                        multiplier:1.0
                                                          constant:[UIScreen mainScreen].bounds.size.height];

        [self.view addConstraint: _heightConstraint];

        TestViewController *test = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
        [self presentViewController:test animated:YES completion:^{

        }];
}

【讨论】:

    【解决方案2】:

    您必须从调用键盘的控制器中呈现您的 viewController,而不是从键盘本身。

    试试:

    [self.parentViewController presentViewController:animated:completion:]
    

    【讨论】:

    • 我也试过了,但无济于事:/ UIInputViewController(键盘)似乎只是拒绝呈现全屏视图控制器......
    • 关闭键盘,展示你的视图控制器,做你必须做的,关闭它并再次显示键盘
    • 我认为您误解了这个问题......我正在构建一个自定义键盘,这将在整个系统的其他应用程序中使用。这意味着我无法关闭键盘并执行代码。
    • 也许您可以尝试使用窗口框架向键盘添加子视图。 (不要忘记 [keyboard setClipsToBounds:No])
    猜你喜欢
    • 2023-04-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    相关资源
    最近更新 更多