Tag: uitabbarcontroller

带导航控制器定位的Tabbar控制器ios 6

我目前正在一个项目,我们有一个标签栏控制器4个选项卡,每个选项卡有一个导航控制器。 在每个导航控制器上都有多个视图控制器。 我在这里和其他地方读了很多post,目前我们做了以下工作: 子类UITabbarcontroller – (BOOL)shouldAutorotate { return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotate]; } – (NSUInteger) supportedInterfaceOrientations { return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController]supportedInterfaceOrientations]; } – (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotateToInterfaceOrientation:toInterfaceOrientation]; } 这工作很好,如果我们在每个viewcontrollers中指定以下内容: – (NSUInteger) supportedInterfaceOrientations{ return UIInterfaceOrientationMaskPortrait; } – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ return YES; } 如预期的那样,这会将其locking到肖像。 但现在真正的问题发生! 如果我们在我们的视图控制器中的其中一个选项卡指定它应该旋转到风景它工作正常,但是当我们然后改变选项卡它仍然在风景,这不是我们想要的! 所以总结一下,有没有人得到一个解决scheme,如何locking几乎所有的视图到一个给定的方向期待一个,并可以改变标签,他们在你指定的方向(这里的肖像)? 我也读了这个postiOS 6的UITabBarController支持与当前的UINavigation控制器的方向 ,但作为一个评论也提到“这几乎为我工作的问题是,如果我已经在横向,当我切换到一个肖像标签只有查看它仍然在旋转的肖像修复它,它不会旋转回风景,但我仍然需要它在肖像,当它第一次加载“这几乎是相同的在这里..

自定义UITabBar和ViewController之间的空间

我采取了一个普通的UITabBar ,并将其背景图像更改为一个具有较低高度的自定义的,所以我改变了frame的height 。 起初我得到的是标签栏下方的空白处。 所以我也改变了frame的origin 。 但是现在空格已经移到标签栏之上了,结果是: 这是在AppDelegate中声明标签栏的代码: self.tabContoller = [[UITabBarController alloc] init]; //customizing the tabbar UIImage * tabBackgroundImage = [UIImage imageNamed:@"tabBarBg.png"]; self.tabContoller.tabBar.backgroundColor = [UIColor colorWithRed:245.f/255.f green:245.f/255.f blue:245.f/255.f alpha:255.f/255.f]; self.tabContoller.tabBar.backgroundImage = tabBackgroundImage; //setting the tabbar height to the correct height of the image CGRect tabR = self.tabContoller.tabBar.frame; CGFloat diff = tabR.size.height – tabBackgroundImage.size.height; tabR.size.height = […]

在Swift中更新未select的tabBarItem的徽章

我有一个导航控制器与4标签栏项目。 每个人都有一个导航控制器里面。 我希望能够更改第四个标签栏的徽章号码,当我得到推送通知,无论是在什么样的视图或制表符我需要使用自动布局,所以我不能使用任何编程解决scheme内的应用程序委托。 我从一个单一的视图模板开始了这个项目。 我试图去所需的选项卡,更改徽章值,然后回来,但它当然不起作用。 tabBarController似乎只有对当前标签栏项的引用。 var current = self.tabBarController?.selectedIndex self.tabBarController?.selectedIndex = 3 self.navigationController?.tabBarItem.badgeValue = "34" self.tabBarController?.selectedIndex = current!

如何从标签栏控制器中获取“当前”导航控制器

是否有一种方法来检索标签栏控制器的当前可见导航控制器? 例如,我的程序中有两个tabbars(每个都有一个导航控制器),如下所示 – (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { //Method is called when user clicks on a hyperlink in one of view controllers NSDictionary *dict = [self parseQueryString:[url query]]; NSString *userID = [dict objectForKey:@"id"]; NSString *navconTitle = [dict objectForKey:@"navcon"]; //intention is to push a view controller onto the CURRENT navigation stack [navcon pushViewController:someViewController animated:YES]; } } […]

获取特定标签栏项目的框架

有没有办法在UITabBarItem中find特定的UITabBarItem的框架? 具体来说,我想创build一个“落入”选项卡的图像的animation,类似于例如删除邮件中的电子邮件,或者购买iTunes应用程序中的曲目。 所以我需要animation的目标坐标。 据我所知,没有公共的API来获得坐标,但是会喜欢错误的。 简而言之,我将不得不使用给定选项卡的索引相对于选项卡栏框架猜测坐标。

如何确定哪个tabbar索引是我的视图控制器

有人可以告诉我如何可以确定视图控制器在哪个tabbar索引。 简化 – 我可以通过硬编码索引跳转到tabBarItem。 self.tabBarController.selectedIndex = 3; 但是,如果用户自定义标签栏项目,则可能是编号为3的viewController不是用户希望的,因为它已被移动。 我怎样才能确定它已经移动到哪里,所以我可以select正确的。 请任何帮助。 谢谢, 背风处

哪个是创build自定义标签栏控制器的最佳方法?

我正在处理更可能是一个tabBarController应用程序的应用程序。 但我不能使用tabBarController因为我需要一个自定义tab处理程序在底部也需要项目之间的自定义空间。 所以我正在创build自定义tabBarController 。 我想知道最好的方法。 目前我的方法是这样的(使用storyboard和iOS6 ): – 我把一个UIToolbar的ViewController将作为一个底部tab栏(CustomTabBarViewController)。 我为每个选项卡采用ContainerViews 。 当用户selecttoolbar上的项目时,我将显示该containerView 。 请告诉我,如果我错了或指导最好的方法。 谢谢。

添加/删除或显示/隐藏使用故事板时从UITabbarController的标签栏项目

我有一个应用程序需要显示不同的内容从UITabBarController根据用户是否注册。 有没有办法在运行时从UITabBarController添加和删​​除ViewController ? 显示和隐藏也可以。 在故事板之前,您可以调用setViewController但是在使用stoaryboard时似乎并不正确。

在透明UITabBar上的黑色背景

我想为我的UITabViewController制作一个模糊的背景UITabBar ,并且这个想法是让它变得模糊和透明,以便下面的视图可以看到滚动。 不幸的是,我不能让我的生活得到标签栏是透明的。 不pipe我做什么,总是有一些黑色背景的标签栏,防止底层视图控制器显示。 如果我将UITabBar的alpha值改为低,我可以看到tableview确实在它后面,但是你可以看到UITabBar有一些背景,阻止了tableview完全显示(而且我不'要禁止button的项目是不可见的,只是标签栏背景)。 怎么会这样? 在自定义标签栏的视图没有加载我有: self.tabBar.translucent = true self.tabBar.alpha = 0.3 self.tabBar.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.0) self.tabBar.layer.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.0).CGColor self.tabBar.backgroundImage = nil self.tabBar.shadowImage = nil 并在AppDelegate中我有: UITabBar.appearance().barTintColor = UIColor.clearColor() UITabBar.appearance().tintColor = kColorAccent UITabBar.appearance().translucent = true UITabBar.appearance().translucent = true UITabBar.appearance().backgroundColor = UIColor.clearColor() UITabBar.appearance().backgroundImage = nil UITabBar.appearance().layer.backgroundColor = UIColor.clearColor().CGColor UITabBar.appearance().shadowImage = nil …是的这是过度的,但我想尝试一切。 有什么想法做什么?

与两个UINavigationControllers共享相同的UIViewController作为rootViewController

更新:我决定走我的问题不同的路线。 我不使用直接重用相同的UIViewController ,而是使用两个设置为rootViewControllers的 vanilla UIViewController 。 在他们的loadView方法中,他们调用[storyboard instantiateViewControllerWithIdentifier:]来获得以前的UIViewController并将其视图设置为控制器的视图。 无论如何,这可能是首选的方法,因为我需要设置几个variables和委托。 我有一个UITtoryBoard与UITabBarController作为入口点与两个UINavigationControllers连接。 每个人都共享一个共同的UIViewController作为他们的根视图控制器。 当应用程序启动时,第一个UITabBarItem被选中并且视图按预期加载。 但是,当我select第二个UITabBarItem时 ,相同的视图不可见。 我看到一个黑色背景的UINavigationBar 。 我是不是做了不正确的故事板界面,还是我需要手动实例化UIViewController通过每个UINavigationController的方法 – 例如loadView?