iphone - Tabbar用法

时间:2011-10-31 10:27:16

标签: iphone tabbar

Hihi all,

我正在尝试在我的iphone应用程序中使用tabbar控件,我对控件有一些疑问。

  1. 如果我创建一个tabbar模板项目,在我的应用程序委托中,它会在应用程序启动期间加载所有5个选项卡控件,这是否会导致内存使用效率低下?

  2. 我是否可以将tabbar控件拖到我的每个屏幕中,并使用[self presentsViewController ..]和[self dismissModalViewControllerAnimated ...]方法在屏幕之间手动切换?

  3. 在iphone app中使用tabbar的最有效方法是什么?

  4. 提前致谢!

    :)

2 个答案:

答案 0 :(得分:0)

您的询问答案是:

  1. 不,这不会导致内存使用效率低下。但是你应该发布标签栏控制器

  2. 您可能会这样做,但这不是一个好习惯,当您致电presentedViewController标签时,该标签将会消失(对不合适的期限而言)。

  3. 在iphone app中使用tabbar的最有效方法是使用tabbar控制器并添加tabBar视图。

答案 1 :(得分:0)

即使我不确定“最有效”在您的上下文中意味着什么,我将尝试解释3.解释我在典型的tabbar应用程序中通常所做的事情:

我不参与示例项目,因为在所有IB内容中有很多魔力(对我而言)(我在尝试组合tabbar控制器和导航控制器方面有很多经验。)

我刚刚设置了一个简单的项目,摆脱了所有IB的东西,并在app delegate中做了类似的事情:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{    
  NSMutableArray *cons = [[NSMutableArray alloc ]init];

  viewController = [[UITabBarController alloc] init]; 
  int i = 0;

  UIViewController *firstController = [[SomeViewViewControllerClazz alloc] init];
  firstController = [[UITabBarItem alloc]initWithTitle:@"Een" image:nil tag:i];
  [cons addObject:firstController];
  [firstController release];
  i++;


  UIViewController *secondController = [[AnotherViewControllerClazz alloc] init];
  secondController = [[UITabBarItem alloc]initWithTitle:@"Twej" image:nil tag:i];
  [cons addObject:secondController];
  [secondController release];
  i++;


  UIViewController *thirdController = [[WhateverViewControllerClazz alloc] init];
  thirdController = [[UITabBarItem alloc]initWithTitle:@"Drej" image:nil tag:i];
  [cons addObject:thirdController];
  [thirdController release];
  i++;

  viewController.viewControllers = cons;
  [window addSubview:viewController.view];
  [window makeKeyAndVisible];

   return YES;
}

通过这种方式,我可以最大限度地自由地使用控制器执行任何操作,但也具有内置功能的tabbars。

1:就这样,即使我在开始时加载控制器,我也从未遇到内存问题。 2:如果tabbar的想法适合你的应用程序,请在iOs提​​供时使用它。