我实现了一个包含四个项目的UITabBarController
。
我从ViewController
设置了初始AppDelegate
。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
HomeTabBarViewController* homeVC = [[HomeTabBarViewController alloc] init];
[self.window setRootViewController:homeVC];
[self.window makeKeyAndVisible];
return YES;
}
这里是HomeTabBarViewController
ViewDidLoad
代码:
UIViewController *view1 = [[UIViewController alloc] init];
[view1.view setBackgroundColor:[UIColor redColor]];
UIViewController *view2 = [[UIViewController alloc] init];
UINavigationController * centerNav=[[UINavigationController alloc]initWithRootViewController:view1];
HomePagingViewController * view3=(HomePagingViewController*)[storyboard instantiateViewControllerWithIdentifier:@"HomePagingViewController"];
UINavigationController * centerNav3=[[UINavigationController alloc]initWithRootViewController:view3];
UIViewController *view4 = [[UIViewController alloc] init];
UINavigationController * centerNav4=[[UINavigationController alloc]initWithRootViewController:view4];
[view2.view setBackgroundColor:[UIColor greenColor]];
[view3.view setBackgroundColor:[UIColor purpleColor]];
[view4.view setBackgroundColor:[UIColor grayColor]];
NSMutableArray *tabViewControllers = [[NSMutableArray alloc] init];
[tabViewControllers addObject:centerNav];
[tabViewControllers addObject:view2];
[tabViewControllers addObject:centerNav3];
[tabViewControllers addObject:centerNav4];
[self setViewControllers:tabViewControllers];
view1.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Home"
image:[UIImage imageNamed:@"home_tab_item.png"] selectedImage:[UIImage imageNamed:@"home_tab_item_active.png"]] ;
view2.tabBarItem =
[[UITabBarItem alloc] initWithTitle:@"Bookmark"
image:[UIImage imageNamed:@"bookmark_tab_item.png"] selectedImage:[UIImage imageNamed:@"bookmark_tab_item_active.png"]];
view3.tabBarItem =
[[UITabBarItem alloc] initWithTitle:@"Paper"
image:[UIImage imageNamed:@"paper_tab_item.png"] selectedImage:[UIImage imageNamed:@"paper_tab_item_active.png"]];
view4.tabBarItem =
[[UITabBarItem alloc] initWithTitle:@"More"
image:[UIImage imageNamed:@"menu_tab_item.png"] selectedImage:[UIImage imageNamed:@"menu_tab_item_active.png"]];
在HomePagingViewController
ViewDidLoad
中,我像代码中一样设置了导航
-(void)navigationSetUp{
self.navigationController.navigationBar.translucent=NO;
UIBarButtonItem * settingBtn=[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"settings.png"] style:UIBarButtonItemStylePlain target:self action:@selector(menuHandler:)];
UIBarButtonItem * searchBtn=[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"settings.png"] style:UIBarButtonItemStylePlain target:self action:@selector(menuHandler:)];
self.navigationItem.leftBarButtonItem = settingBtn;
self.navigationItem.rightBarButtonItem = searchBtn;
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ie_New_logo.png"]];
}
此后,当我更改HomePagingViewController
的标签时,导航右按钮未正确放置,则从右开始没有空白。
请帮助。
答案 0 :(得分:1)
我解决了这个问题,代码没有问题。实际上,对于Epaper,我们使用了第三方SDK,因此会发生此问题。我删除了SDK,现在代码可以正常工作。
答案 1 :(得分:0)
您应该考虑UIBarButtonSystemItemFixedSpace
的作用。
UIBarButtonItem * space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
-