当我在iOS 4.3中调用它时,ViewDidAppear不起作用?

时间:2012-01-02 15:50:11

标签: iphone cocoa-touch ipad objective-c-2.0 viewdidappear

我有一个包含四个UIViewController的UITabBarController,当我想调用viewDidAppear时,它不起作用。我不知道为什么这只发生在iOS 4.3上?

//
UINavigationController *nav3 = [[UINavigationController alloc] init];
SearchViewController *searchViewController = [[SearchViewController alloc] init];
searchViewController.context = context;

[nav3 pushViewController:searchViewController animated:NO];
[arrayViewController addObject:nav3];

[nav3 release]; [searchViewController release];

//
UINavigationController *nav4 = [[UINavigationController alloc] init];
FavorisViewController *favorisViewController = [[FavorisViewController alloc] init];
favorisViewController.context = context;

[nav4 pushViewController:favorisViewController animated:NO];
[arrayViewController addObject:nav4];

[nav4 release]; [favorisViewController release];

我最喜欢的UIViewController:

     #pragma mark - View lifecycle

     - (void)viewDidLoad
      {
         [super viewDidLoad];

          NSError *error;
          NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
          fetch.entity = [NSEntityDescription entityForName:@"Businesses" inManagedObjectContext:context];
          fetchObject = [context executeFetchRequest:fetch error:&error];

         [fetch release];

        }

      - (void)viewDidAppear:(BOOL)animated
       {
          NSLog(@"test");
       }

1 个答案:

答案 0 :(得分:0)

请尝试使用UINavigationController方法initWithRootViewController:。例如,

FavorisViewController *favorisViewController = [[FavorisViewController alloc] init];
favorisViewController.context = context;
UINavigationController *nav4 = [[UINavigationController alloc] initWithRootViewController:favorisViewController];
[favorisViewController release];

请注意,仅仅因为视图被推入堆栈,并不意味着它是可见的。在您选择具有该视图的标签之前,不应调用viewDidAppear: