处理键盘解雇的UIModalPresentationFormSheet句柄

时间:2012-06-15 16:43:49

标签: objective-c ios5 uinavigationcontroller uimodalpresentationstyle

所有

我有一个DetailViewController,其类设置为UIControl,并且有一个“backgroundTouched”IBAction方法可以完美地处理这些背景触摸事件。当我将DetailViewController更改为以模态方式呈现时,在FormSheet中,我将无法检测到背景触摸,因此键盘不会在背景触摸时消失。我认为原因在于,之前,DetailView占用了整个屏幕,因此所有委托方法都被触发但现在它以模态方式呈现,这些委托和IBAction方法不再能够通信。

我对问题的分析是否正确,如何获得报告事件的模态演示?

由于

   //Give it a nav controller
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:detailViewController];



/****************************************************
 *
 *  Use a modal form presentation for  form
 *  
 *
 ****************************************************/

    //Use a form sheet style for DetailView
    [navController setModalPresentationStyle:UIModalPresentationFormSheet];

    //flip-horizontal transition
    [navController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];



[self presentViewController:navController animated:YES completion:nil];


 }  

1 个答案:

答案 0 :(得分:1)

这可能与Apple在模态演示中选择如何处理键盘消除有关(即,当它通常隐藏时基本上不隐藏它。理由是在模态上下文中它可能经常上下移动)。 请参阅Modal Dialog Does Not Dismiss Keyboard关于该问题的已接受答案有一个很好的解释,我的答案在使用导航控制器时提供了一个很好的通用解决方案。

相关问题