这段带有iOS 7的代码运行良好,但是当它在XCode 6& iOS8模拟器中运行时,视图就会消失(调用UIViewController viewWillDisappear )。当我从actionSheet中选择“编辑”选项时,就会发生这种情况。但是,当我点击webView并通知/调用keyboardWillShow:时,它不会消失。这个UIViewController是由rootViewController提供的,非常感谢您的帮助。
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
NSString *title = [actionSheet buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"Edit"]){
[self switchModeTo:@"Edit"];
}
}
- (void)switchModeTo:(NSString *)mode{
if([mode isEqualToString:@"Edit"]){
self.isEditMode = YES;
[self.btnApply setHidden:NO];
[self.btnMore setHidden:YES];
CGRect frame = [self.webview frame];
frame.origin.y = 44;
frame.size.height = 492;
[self.webview setFrame:frame];
}
}
- (void)keyBoardWillShow:(NSNotification *)notif{
[self switchModeTo:@"Edit"];
}发布于 2014-09-03 00:34:12
我也有过类似的问题。我试图呈现一个从动作表触发的模态视图控制器。提出了模态观点,然后立即予以驳回。
我创建了另一个测试用例,并收到以下消息:
Warning: Attempt to present <ModalViewController: 0x78fbadd0> on <MainViewController: 0x78fa71c0> which is already presenting (null)结果表明,动作表弹出干扰了视图控制器呈现另一个模态视图控制器的能力。与您的示例一样,如果我从操作表(在我的例子中是一个按钮)中触发了相同的代码,它就可以正常工作。
为了解决这个问题,我简单地引入了一个小小的延迟,给了操作单弹出一个机会,以避开这个例子,如下所示:
- (void)actionSheet:(UIActionSheet *)actionSheet
clickedButtonAtIndex:(NSInteger)buttonIndex
{
if ( buttonIndex != actionSheet.cancelButtonIndex ) {
[self performSelector:@selector(showModalView) withObject:nil afterDelay:0.3];
}
}
- (void)showModalView
{
ModalViewController* modalVC = [[ModalViewController alloc] init];
[self presentViewController:modalVC animated:YES completion:nil];
}https://stackoverflow.com/questions/25372164
复制相似问题