我正在使用Storyboard和Xcode 6.我在Storyboard中有下一个控制器和场景:
UINavigationController具有HomeViewController作为根.HomeViewController有一个按钮Show (e.g. Push) UITabBarController.UITabBarController有4 UIViewControllers.
但我的问题是,在我显示之后UITabBarController,4中没有导航栏UIViewControllers.但我认为,如果我Show (e.g. Push) UITabBarController那么它应该有嵌入式导航控制器,它是故事板中的初始控制器.我对吗?如果是这样,我如何在Storyboard中设置导航栏,因为我在故事板上看到的推送标签栏中现在有默认栏事件.我选择了UIViewController并将身份检查器中的模拟指标设置为Top属性的Translucent Navigation bar,但我认为它应该自动添加到此控制器和标签栏而无需其他步骤.
或者我应该为每个具有根视图控制器的标签栏项添加新的导航控制器?
主要问题为什么我没有在使用show(例如Push)的故事板中看到导航栏.例如,如果我添加导航控制器然后设置为根 - 标签栏控制器,那么Xcode会自动添加顶部导航栏,但如果队列有一个额外的步骤,就像在我的情况下HomeViewController一样,顶部导航栏永远不会自动出现.
uitabbarcontroller uinavigationcontroller ios uistoryboard xcode6
Apple在iOS 7中的tabBar上添加了一条小线,它可以作为tabBar和UI之间的阴影或淡入淡出

因为我使用的是定制的tabBar,所以这条线很刺激.你怎么删除它?请告诉我这是可能的,否则我需要重新设计我的整个应用程序大声笑....
/ 问候
*编辑
使用以下代码行解决了我的问题:
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
Run Code Online (Sandbox Code Playgroud) 我实现了一个自定义UITabBar,我仍然在它上面有这个渐变/阴影.我补充道
[self.tabBar setBackgroundImage:[UIImage imageNamed:@"navBarBottom.png"]];
这只是改变背景但保持阴影渐变.
我究竟做错了什么 ?是否有任何指定摆脱它?
是)我有的 :

我想要的是 :

谢谢.
我的应用程序(简化)结构是这样的:
UITabBarController一个人UINavigationController拿着一个UITableViewController根视图控制器.
当点击其中一个表格视图控制器单元格时,我按下常规UIViewController(让它称之为VC)结束隐藏底部标签栏.(使用"按下时隐藏底栏"标志)
在故事板中,我UIView向VC 添加了一个看起来像底栏的常规子类,我使用自动布局将其固定到VC视图的底部.
我推VC时的问题需要一秒钟才能将此视图固定到底部,看起来像自动布局将其固定到底部,就像标签栏没有隐藏一样,一秒后它就会识别出标签栏是隐藏的将其移动到视图的真实底部.
我知道这不是最好的解释,所以我添加了一个非常简单的项目来证明这个问题.
我有一个根视图控制器,它没有被设置为我的故事板上任何视图控制器的自定义类.相反,我的所有视图控制器都是这样的子类.
// RootViewController
class RootViewController: UIViewController, UITabBarDelegate {
// This is not getting executed on any of the view controllers
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
print("ddd")
}
}
// Subclassing it
class TopStoriesViewController: RootViewController {
}
Run Code Online (Sandbox Code Playgroud)
但是,当在视图控制器上按下tabbaritem时,我似乎正在努力做某事,该视图控制器是rootviewcontroller的子类,即消息未被打印.
我想知道我们如何创建一个更大的中心UITabBar,如下图所示?真的很漂亮!!!!

(这既是问题又是答案,因为需要花费大量时间才能找到真正的答案.)
症状:viewWillAppear,viewDidAppear没有被称为在我的UIViewController.
原因:嵌入一个UINavigationController或UITabBarController(我的情况)以UIViewController某种方式中断调用这些方法.
解决方案:在UIViewController包含上述UINavigationController/的手动调用它们UITabBarController.
例如(假设projectNavigationController是你的UINavigationController):
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[projectNavigationController viewWillAppear:animated];
}
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[projectNavigationController viewWillDisappear:animated];
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[projectNavigationController viewDidAppear:animated];
}
-(void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[projectNavigationController viewDidDisappear:animated];
}
在我的情况下,我有一个内部UITabBarController,我相应地调用方法,所有都解决了.
(对解决方案的归因:http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/)
我想在我的故事板中更改附加到UITabBarController的视图控制器的顺序,而不断开所有视图控制器并按所需顺序重新连接它们.
我的问题:这可以通过Storyboard IB UI完成吗?
我在寻找一些检查小组在那里我可以在饲料中视图控制器的这个列表上下移动项目viewControllers上的财产UITabBarController.

我有很多标签,所以我希望不必断开所有连接并重新连接,只是为了改变顺序.
我甚至尝试在检查器中更改Bar Item上的'tag'值,但是在运行时也忽略了该值(我认为它是用于识别目的,而不是用于排序).

我想以编程方式将标题设置为标签项,但它不起作用.我的代码如下:
- (IBAction)tab1Click:(id)sender {
myTabBarController = [[UITabBarController alloc] init];
view2Controller = [[View2Controller alloc] init];
[view2Controller setTitle:@"title"];
view3Controller = [[View3Controller alloc] init];
deneme = [[ViewController alloc] init];
myTabBarController.viewControllers = [NSArray arrayWithObjects:deneme, view2Controller,view3Controller, nil];
[self.view addSubview:myTabBarController.view];
myTabBarController.selectedIndex=1;
}
Run Code Online (Sandbox Code Playgroud) 如何用swift设置标签栏徽章?例如,当我收到消息图标上显示数字1的新消息时!我是否必须使用UITabBarItem.swift并在其中编写代码!我不确定我怎么做
谢谢 !
ios ×6
objective-c ×5
uitabbar ×4
iphone ×2
swift ×2
uistoryboard ×2
uitabbaritem ×2
autolayout ×1
ios5 ×1
storyboard ×1
uibutton ×1
xcode ×1
xcode6 ×1