当取消隐藏视图时执行其他代码,视图不显示

时间:2013-02-04 11:51:11

标签: ios uiview

我在执行其他代码时取消隐藏UIView时遇到问题。代码如下:

- (void)someMethod {
    self.oldView.hidden = YES;
    self.newView.hidden = NO;

    NSString *parameter = self.myLabel.text;
    [AnotherObject doSomethingWith:parameter];
}

doSomething:方法是一种非常强大的方法,需要几秒钟。这种行为现在出乎意料:

  1. 隐藏了旧视图
  2. 需要几秒钟(好像doSomething:执行
  3. 显示了newView
  4. 问题是什么?如何在执行doSomething:代码之前显示newView?

2 个答案:

答案 0 :(得分:0)

使用此代码:

- (void)someMethod {
    self.oldView.hidden = YES;
    self.newView.hidden = NO;

    NSString *parameter = self.myLabel.text;
    [self performSelector:@selector(doSomethingWith:) withObject:parameter afterDelay:0.1];
}

这会在0.1秒延迟后调用你的方法,所以在这段时间你的newView会显示。

答案 1 :(得分:0)

使用此代码:

- (void)someMethod {
    self.oldView.hidden = YES;
    self.newView.hidden = NO;

    NSString *parameter = self.myLabel.text;
   [NSThread detachNewThreadSelector:@selector(doSomethingWith:) toTarget:self   withObject:parameter];

}

并还原我..