0

我想检查我的视图是否已经添加到视图中,这样用户就不能重复地将新的 UIViewController 添加到视图中。

    if (!self.fmovc)
    {
        self.fmovc = [[FMOVC alloc] initWithNibName: @"FMOVC" bundle:nil];
    }

    BOOL viewAlreadyDisplayed = NO;
    for (UIView * b in self.view.subviews)
    {
        if ([b isKindOfClass:[FMOVC class]])
        {
            viewAlreadyDisplayed = YES;
        }
    }

    if (!viewAlreadyDisplayed)
    {
        [self.view addSubview:self.fmovc.view];
    }

这不起作用,因为它永远不会触发

viewAlreadyDisplayed = YES;

查找视图是否已显示的正确方法是什么?

谢谢,-代码

4

2 回答 2

0

在添加之前,只需 removeItFromSuperView...它可能会解决您的问题

    [self.fmovc.view removeFromSuperview];
    [self.view addSubview:self.fmovc.view];
于 2013-01-24T11:41:03.240 回答
0

让 UIView 成员变量说 thatView;

if(!thatView) { thatView = [[UIView alloc] init]; [self.view addSubView:thatView]; }

释放超级视图后,释放 thatView 并使 thatView 为零。

或者

在分配 thatView 之前,请始终检查并删除 thatView 是否存在于 superview 中。

希望这可以帮助 !!!

于 2013-01-24T11:43:44.327 回答