Hihi all,
我正在尝试在我的iphone应用程序中使用tabbar控件,我对控件有一些疑问。
如果我创建一个tabbar模板项目,在我的应用程序委托中,它会在应用程序启动期间加载所有5个选项卡控件,这是否会导致内存使用效率低下?
我是否可以将tabbar控件拖到我的每个屏幕中,并使用[self presentsViewController ..]和[self dismissModalViewControllerAnimated ...]方法在屏幕之间手动切换?
在iphone app中使用tabbar的最有效方法是什么?
提前致谢!
:)
答案 0 :(得分:0)
您的询问答案是:
不,这不会导致内存使用效率低下。但是你应该发布标签栏控制器
您可能会这样做,但这不是一个好习惯,当您致电presentedViewController
标签时,该标签将会消失(对不合适的期限而言)。
答案 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提供时使用它。