【问题标题】:IOS 7 open modal view not centeredIOS 7打开模式视图不居中
【发布时间】:2013-10-15 08:51:41
【问题描述】:

在将我的 XCode 项目更新到 Xcode 5 和 IOS 7 后,我遇到了一个非常奇怪的问题。 我的项目是一个 iPad 项目,它打开视图以在模态模式下进行编辑。

更新后,我的所有模态视图在关注文本字段(或任何输入字段)后不再居中

我像这样打开所有模态视图:

if ([[segue identifier] isEqualToString:@"add_log"]) {

    MemberAddLogViewController *vc = [segue destinationViewController];
    vc.selfDelegate = self;
    vc.member = self.member;
}

并且使用 Style = Modal、Presentation = Default、Transation = Default 创建序列。 如果我在 IOS6 模拟器上运行它,模式视图会保持居中,但如果在 IOS7 模拟器上运行它,它会在输入字段中设置焦点后“捕捉”到左侧或右侧:

[self.subject becomeFirstResponder];

还有其他人有这个问题吗?

-- 更新 ---

这个 bug 让我烦恼了几个小时后,我尝试“重做”viewcontroller 类,但偶然我将 becomeFirstResponder 添加到 viewDidLoad 而不是 viewDidAppear 中,它解决了这个问题。

【问题讨论】:

  • Stackoverflow 不是论坛,论坛惯例不适用于此处。问题就是问题,答案就是答案,cmets 就是 cmets。如果您已经解决了问题,请编辑您的答案(这实际上不是答案,因此有被删除的风险)以反映这一点。另外,一题一题。如果您有新问题或后续问题,请提出新问题。在任何情况下阅读faqHow to AskHow to Answer
  • 好的,那我该如何删除问题呢?
  • 您可以点击问题下方的关闭链接,但这通常是不可取的,因为如果您这样做太多,最终会导致自动问题被禁止。问题禁令的另一个促成因素是被拒绝的问题和社区关闭的问题。在您的情况下,我会取消删除答案,并使用您的评论内容对其进行更新。也许其他人最终会做同样的事情,在这种情况下,提供答案会帮助那个人。回答你自己的问题是完全没问题的。
  • 好的,完成,谢谢您的帮助和澄清
  • @HenrikHansen:您甚至可以接受自己的答案,这非常合理!不过,你不会得到任何意义......

标签: objective-c xcode ios7 modal-dialog


【解决方案1】:

当我将应用程序从 iOS6 移植到 iOS7 时,我在横向模式下的 iOS 7 中遇到了类似的问题,我的 UITableViewController 居中,但是当在 viewDidAppear 中调用方法 becomeFirstResponder 并且键盘出现时,视图正在移动到左侧或右侧屏幕取决于旋转方向。 解决方案很有趣,我不得不在主线程中运行它:

- (void)viewDidAppear:(BOOL)animated {
    dispatch_async(dispatch_get_main_queue(), ^{
        [textField becomeFirstResponder];
    });
}

现在一切正常。这可能对某人有帮助,我在谷歌寻找解决方案几天,但没有找到任何合适的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多