Iphone 在完全取消操作表之前显示模式视图

Iphone 在完全取消操作表之前显示模式视图,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,是否有一种方法可以在完全取消操作表之前显示模态视图控制器视图?我试图在这里执行此操作,但似乎回调必须在模态视图出现之前完成: - (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { if (0 == buttonIndex) { // clicked 'Are you sure?' button [self spla

是否有一种方法可以在完全取消操作表之前显示模态视图控制器视图?我试图在这里执行此操作,但似乎回调必须在模态视图出现之前完成:

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{   
    if (0 == buttonIndex) {     // clicked 'Are you sure?' button
        [self splashScreen:YES];
...
然后我基本上做到了:

[[AppDelegate tabBarController]presentModalViewController:self.TMX\u splashViewController动画:是]

我的问题是,我想响应操作表中的“确定吗?”按钮,然后在我执行某些工作(执行批量上载)时在模式视图控制器中显示进度指示器。但行动计划似乎是个障碍;)

解决方案: 在显示模态视图控制器之前,我稍微延迟了一下。我不确定我是否完全理解这一点,但似乎存在某种竞争条件,在这种情况下,工作代码块将“领先”模态表示代码。稍加延迟后,它似乎起作用了。嗯,这很奇怪

[self splashScreen:YES];                
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:0.75
        target: self selector:@selector(waitForSplashTimer:) userInfo: nil repeats: NO];

您还可以使用-performSelector:withObject:afterDelay:,这样代码就少了一点,而且更易于阅读:

[self performSelector: @selector(waitForSplashTimer:) withObject: nil afterDelay: 0.75];

我不确定这是否是“犹太教”,但我不得不稍微推迟一下,现在它可以工作了:[自我飞溅屏幕:是];n定时器*定时器;计时器=[NSTimer scheduledTimerWithTimeInterval:0.75目标:自选择器:@selector(waitForSplashTimer:)用户信息:无重复:否];