iphone - 在 iPad 上关闭模态视图 Controller 时应用程序卡住

标签 iphone ios ipad modalviewcontroller

这适用于 iPhone 顺便说一句(两者都运行 iOS 5.1)

当我调用 [self DismissModalViewControllerAnimated:NO]; 时,我的应用程序卡住了

我尝试了很多不同的方法:

我的代码现在如何:

-(void) doneEditing:(NSString *)value
{
    [multiLineText dismissModalViewControllerAnimated:NO];
    self.currentActiveTextView.text = value;
    self.currentActiveTextView = nil;
}

- (void)textViewDidBeginEditing:(UITextView *)textView
{
    multiLineText = [[MultilineTextViewController alloc] init];
    multiLineText.delegate = self;
    multiLineText.text = textView.text;
    self.currentActiveTextView = textView;
    [self presentModalViewController:multiLineText animated:NO];
}

MultilineTextViewController.h

@protocol DoneEditing
    -(void)doneEditing:(NSString*)value;
@end

@interface MultilineTextViewController : UIViewController
{
    UITextView *inputText;
    id<DoneEditing> delegate;
}
@property (nonatomic, strong) NSString *text;
@property (nonatomic, strong) id<DoneEditing> delegate;
@end

从完成按钮调用的函数

-(void) done:(id)sender
{
    [delegate doneEditing:inputText.text];
}

我尝试在完成的函数中忽略模式 我已经在两个地方都尝试过了 我也在 MultilineTextViewController

中尝试过这个
if ([[self parentViewController] respondsToSelector:@selector(dismissModalViewControllerAnimated:)]){

    [[self parentViewController] dismissModalViewControllerAnimated:NO];

} else {

    [[self presentingViewController] dismissViewControllerAnimated:NO completion:nil];
}

只是一些历史记录,当用户单击 UITextView 时,我用来打开一个新的 ModalViewController 以允许用户有更多空间来输入大量文本,完成后用户按下“完成”,我调用委托(delegate)方法将文本放在原始表单上。

如果我在上述任何给定情况下将动画更改为 yes,它仍然不起作用,但我不会卡住,而是得到 NSInternalInconsistencyException

Attempting to begin a modal transition from <WorkflowViewController: 0xc6846b0> to <MultilineTextViewController: 0xc64b960> while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed

有什么想法吗?

我似乎找不到这个东西不起作用的原因......

最佳答案

由于是 iPad,当您想要呈现 View 时,也许您可​​以使用 UIPopOverController。尝试创建一个 UIPopOverController 并使用模态视图的 View Controller 启动它。您可以设置大小以及弹出位置。您可以将调用它的类设置为 View 的委托(delegate),以便您可以获得通知。

希望这有帮助

关于iphone - 在 iPad 上关闭模态视图 Controller 时应用程序卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9938528/

相关文章:

iphone - 在Objective-C中,与类方法相比,拥有单例有什么优势?

iphone - 通过套接字发送图像数据,但它在到达服务器时接收到一些不同的格式

ios - 如何制作一系列句子?

iphone - 检测 UITextField 失去焦点

javascript - 如何使用运行 iOS6 的 iPad 调试 iPad iOS5 Javascript 错误?

iphone - 自动释放对象的 Objective-C 成员初始化

ios - 居中对齐 UITableViewCell 的页脚

ios - 单点触控 : Playing MP3 user control

iphone - 如何从我的各种 View Controller 访问存储在我的应用程序委托(delegate)中的数据?

iphone - 在 Objective C 中设置静态变量