微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

模态视图问题

如何解决模态视图问题

| 我的某些观点有疑问,这是我的设置的简短概述:
Tab Bar Controller
|
--View Controller 1
|
--View Controller 2
|
--View Controller 2
在特定操作上,View Controller 1将显示模式对话框。在此对话框中,如果用户执行其他操作,则显示一个模式对话框,使用第一个模式对话框呈现视图。 在第二个ModalDialog上,我有一个UITextField,但是当我尝试在文本字段中键入内容时,没有任何反应。即使显示键盘调用了textFieldDidBeginEditing方法。我已经设置了UITextFieldDelegate和必要的响应者,但无济于事。 有谁知道会导致这个问题的原因吗? 非常感谢     

解决方法

        我发现,在很多情况下,随着视图的更改和弹出窗口的出现,文本字段未能正确地集中在您所描述的症状上。在这些情况下,我最终将
becomeFirstResponder
调用推迟到动画完成或视图已加载之前-例如在视图控制器
viewDidAppear
方法中。 或者,只需将视图更改/设置动画/等所需的适当时间延迟至to1 call即可,即:
[textField performSelector:@selector(becomeFirstResponder)
                withObject:nil
                afterDelay:0.3];
    ,        如果可能的话,我会尝试从视图控制器“链接”模式对话框。 VC打开第一个模态对话框 您的第一个模式对话框会通知VC(可能使用委派)。 (可能需要)关闭第一个模态对话框 VC打开第二个模态对话框 幸福!     ,        我不确定您所说的“模态对话”是什么意思-我假设您的意思是模态呈现视图控制器具有
UIModalPresentationFormSheet
模态呈现样式或UIPopoverController。 这是我的最佳猜测:我很确定您的“模态对话”捕获了所有用户交互(默认情况下)。因此,当按第一个时,它将捕获所有输入焦点。按下第二个时,它的捕获与上一个发生冲突,因此键盘将无法工作。 无论如何,这两种“模态对话”都不是要堆叠的。即使从技术上讲它可以工作,我也不喜欢它从交互设计的角度出发。与其尝试修复错误或解决它,不如重新考虑您的模态对话。您可以将所有内容整合为一个。例如,通过在该视图内使用导航控制器,替换视图或翻转其内容...等。 希望对您有所帮助,马克斯     ,        如果我是您,我会考虑修订导航层次结构。模态对话框被认为足够糟糕,但是将模态对话框合并到模态对话框中会导致用户界面自杀。它给用户造成混乱,并且非常不传统。有什么方法可以使用第一个模式弹出窗口并简单地交换内容? 旁注:您提到将视图设置为
UITextViewDelegate
。您是否将视图作为文本框的委托?您是要从
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
退还
NO
还是
FALSE
?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。