0

ビューコントローラーが既に作成されているかどうかを確認しようとしています。ビューが既に存在する場合は、それが現在のビューになります。存在しない場合は、作成して表示する必要があります。

私のコードは

            DemoViewController *demoController = [DemoViewController alloc];
        for(DemoViewController *view in self.navigationController.viewControllers)
        {
            if([view isKindOfClass:[DemoViewController class]])
            {
                viewExists=true;
                demoController=view;
            }

        }
        if (!viewExists) {
            demoController initWithNibName:@"DemoViewController" bundle:nil;
        }
        [view release];
        [demoController release];

どこが間違っているのかわかりませんが、for ループが実行されていないようです。どんな助けでも素晴らしいでしょう!

4

1 に答える 1

0

このようにしてみてください:

DemoViewController* demoController = nil;
for(int vv=0; vv<[self.navigationController.viewControllers count]; ++vv) {
    NSObject *vc = [self.navigationController.viewControllers objectAtIndex:vv];
    if([vc isKindOfClass:[DemoViewController class]]) {
        demoController = (DemoViewController*)vc;
    }
}

if (demoController == nil) {
    demoController = [[DemoViewController alloc] initWithNibName:@"DemoViewController" bundle:nil];
    // Do we need to push it into navigation controller?
}

[demoController release];
于 2012-09-17T00:52:54.027 に答える