viewcontroller不会解雇

时间:2011-04-02 22:16:57

标签: iphone

我有以下代码

- (void) viewWillAppear:(BOOL)animated
{
   NSLog(@"dismiss view");
   [self dismissModalViewControllerAnimated:YES];
}

这会打印解除视图,但不会执行视图解雇代码。

如果没有来自IBAction的触发器,代码可以在代码中被解雇吗?

为什么不执行此操作?

2 个答案:

答案 0 :(得分:1)

将代码放入viewDidAppear而不是viewWillAppear可能会更好。后者倾向于在任何动画开始时调用,例如模态开始从屏幕上滑落;当动画完全结束时,往往会调用前者。请注意,即使这种策略有效,你也可能会产生一种奇怪的效果,即两个模态会一个接一个地滑落;我认为你只想要一个滑落效果。

如果您关闭“向下”模式对话框(首先推送的对话框),并且不打算忽略最顶层的对话框会发生什么?

在解雇模态视图控制器时,还要考虑注意animated参数。当你遇到像你这样的问题时,动画与否的不同组合会产生不同的效果。

如果您发布更完整的代码示例,我们可以给出更好的答案!

答案 1 :(得分:0)

尝试稍微延迟第二次解雇。

- (void) viewWillAppear:(BOOL)animated
{
   NSLog(@"dismiss view");
   [self performSelector:@selector(delayedDismiss) withObject:nil afterDelay:0.5];
}

-(void)delayedDismiss{
   [self dismissModalViewControllerAnimated:YES];
}