一般來說,我們會碰到的狀況是要在UIViewController加上TabBar的效果,但因為我們要加上的是包含UITabBarItem的UITabBar,所以必須操作最外層的UITabBarController。
h檔
#import
#import "FindLocation_hole.h"
#import "FindLocation_pipe.h"
#import "FindLocation_town.h"
@interface MapMain_FindLocation : UIViewController
{
UITabBarController *tabBarController;
FindLocation_hole *findhole;
FindLocation_pipe *findpipe;
FindLocation_town *findtown;
}
@property (nonatomic, retain) UITabBarController *tabBarController;
@property (nonatomic, retain) FindLocation_hole *findhole;
@property (nonatomic, retain) FindLocation_pipe *findpipe;
@property (nonatomic, retain) FindLocation_town *findtown;
@end
說明:我預計要加上三個tab,所以包含要加上的tab的View都一併宣告。
m檔
#import "MapMain_FindLocation.h"
@implementation MapMain_FindLocation
@synthesize findhole,findpipe,findtown,tabBarController;
-(void) initView
{
tabBarController = [[UITabBarController alloc] init];
findhole = [[FindLocation_hole alloc] init];
[findhole.tabBarItem initWithTitle:@"功能三" image:[UIImage imageNamed:@"search1_30" ] tag:0];
findpipe = [[FindLocation_pipe alloc] init];
//[findpipe.tabBarItem initWithTitle:@"功能二" image:[UIImage imageNamed:@"search2_30" ] tag:1];
[findpipe.tabBarItem initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:1];
findtown = [[FindLocation_town alloc] init];
[findtown.tabBarItem initWithTitle:@"功能三" image:[UIImage imageNamed:@"search2_30" ] tag:2];
tabBarController.viewControllers = [NSArray arrayWithObjects:findhole,findpipe,findtown, nil];
[self.view addSubview:tabBarController.view];
}
說明:
在加入UITabBarItem時有兩種方式,一個是利用系統內的參數來加,那麼圖與說明都會跟SDK內的設定相同,或是你可以自己定義說明與加上去的文字。
最重要的是最後兩句,將各個要放入的View與UITabBar都定義好後,要放入UITabBarController的viewControllers,並且將UITabBarController加到目前的UIViewController內。
效果:
*如果你使用iPhone來看效果,那就會非常的正常,但是如果使用iPad就會看到上面的結果,TabBarItem的部分被切掉一半,並沒有完全地顯示。(解決方式)
沒有留言:
張貼留言