- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序第一个 View 是 UICollectionView,我将 Cell 推送到具有五个 View 的 TabBarController,但是当我更改每个 View 的标题时没有出现问题。所以我需要为这五个 viewController 设置不同的标题。
CollectionView.m
是:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"cell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
productName *data = [self.productarray objectAtIndex:indexPath.item];
UIImageView *imageView = (UIImageView *)[cell viewWithTag:100];
imageView.image = data.productImage;
UILabel *title2 = (UILabel *)[cell viewWithTag:200];
title2.text = data.productNames;
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
ProductsViewController *detail = [[ProductsViewController alloc]init];
//[self.view pushViewController:detail animated:YES];
detail.productNumber = indexPath.item;
//NSLog(@"%d", indexPath.item);
}
最佳答案
您需要创建 tabBarController。在你的 didSelect 方法中有这样的东西。 ...
UITabBarController * tabBarController = [[UITabBarController alloc] init];
UIViewController * firstController = [[MYCustomViewController alloc] init];
UITabBarItem * firstItem = [[UITabBarItem alloc] initWithTitle:@"First" image:[UIImage imageNamed: @"FirstImage"] tag:1];
firstController.tabBarItem = firstItem;
//Now create second through fifth VCs here
tabBarController.viewControllers = @[firstController, secondController, thirdController, fourthController, fifthController];
[self.navigationController pushViewController:tabBarController animated:YES];
另一方面,将标签栏放在导航 Controller 中被认为是不好的形式(至少 Apple 认为),我认为甚至不可能将导航栏放在导航栏中。
进一步的想法(在下面的评论之后):
我建议的是从您的原始 collectionView 中“呈现”您的 tabBarController,然后标签栏内的每个 viewController 都将是一个 navController。在您的 didSelect 中,这现在看起来像:
UITabBarController * tabBarController = [[UITabBarController alloc] init];
UINavigationController *firstController = [[UINavigationController alloc] initWithRootViewController:[[MYCustomViewController1 alloc] init];
UITabBarItem * firstItem = [[UITabBarItem alloc] initWithTitle:@"First" image:[UIImage imageNamed: @"FirstImage"] tag:1];
firstController.tabBarItem = firstItem;
//Now create second through fifth Nav VCs here
tabBarController.viewControllers = @[firstController, secondController, thirdController, fourthController, fifthController];
tabBarController.modalPresentationStyle = UIModalPresentationFullScreen;
tabBarController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:tabBarController animated:YES completion:nil];
在 Interface Builder 中为 VC 创建 View (例如 MYView1)(Edit>New>File>ios>UserInterface>View> 并将 File 的 OwnerType 更改为您的 VC 类的名称)。然后不仅仅是 [[MYCustomViewController1 alloc] init]
使用 [[MYCustomViewController1 alloc] initWithNibName:@"MYView1"bundle:nil]
当您想从 tabBar 返回到 collectionView 时,从任何嵌入式 Controller 创建一个按钮并链接其操作以运行此代码:
[self.tabBarController dismissViewController:self.tabBarController animated:YES completion:nil]
最后,如果您想在 IB 中执行所有这些操作,只需绘制带有相关五个子 Controller 的 tabcontroller。然后让你的 collectionViewController
(它不应该在导航 Controller 中),并创建一个从你的 collectionViewCell 到 tabController 的 segue。将 segue 的类型设置为模态。然后单击一个项目应该直接启动 tabController。要为 tabController 设置 productNumber 信息,请添加此方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSIndexPath *indexPath = [self.collectionView indexPathForSelectedRow];
segue.destinationViewController.productNumber = indexPath.item;
}
关于ios - 将 viewController 的标题更改为 tabbarController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22336808/
我是 IOS/objective-c/xcode 的新手,请多多包涵。我的问题是我不知道如何在标签栏中设置标签栏。 首先:我成功创建了一个 UITabBarController 和他的 View :
我正在开发一个项目,当我们选择某些内容时,Initial View 有一个 PickerView。我将此数据作为 String 传递给 TabBarController,然后从 TabBarContr
我想知道如何在 Xcode 中创建嵌套的 UITabBarControllers,我正在使用 Swift。 我的第一个 UITabBarController 有两个项目:Search (UITable
我正在呈现来自另一个 ViewController (HomeViewController) 的 UITabBarController。 TabBarController 又包含 UINavigati
已编辑 有人可以解释[self.tabBarController setSelectedIndex:1];和self.tabBarController.selectedIndex = 1;之间的区别
在多个 Storyboard中工作。从点 A->TabBarController(tab 2)->NavigationControllerA->StoryboardReference->Navigat
我有一个自定义的 UITabBarController。我正在记录与它一起使用的 4 个 ViewController,我得到了我期望的结果。 但是,当我点击 NavigationController
我想以编程方式制作tabbarcontroller。 tabBarController 未显示在页面中。谁能告诉我们出了什么问题吗?我们可以在一个应用程序中制作多个 tabbarcontroller
我是 iPhone 开发者的初学者,我正在开发我的第一个应用程序。实际上,我已经很好地创建了一个 Tab Bar 应用程序,但我想在运行应用程序时添加启动画面。 我在 Loading a Welcom
我似乎还没有对 UITabBar、UITabBarController 和导航 Controller 有足够的了解来做我想做的事情。我希望有人可以提供一些指导。 我总共有 8 个 VC。我希望其中五个
在我的应用程序的设置部分,用户可以选择更改应用程序的语言。所以当用户选择西类牙语 作为他的主要语言,该应用程序以西类牙语显示内容在他重启应用后但我想更改语言在飞行中 .这适用于主要内容,如 Table
我创建了一个选项卡栏 Controller ,我注意到当我更改选项卡时,它会发生突然的变化场景。有没有办法让它在选项卡更改时滑动到该选项卡? 最佳答案 我认为 UITabBarController 不
我的应用程序是基于选项卡的应用程序,它有 8 个选项卡。所以它有“更多”按钮 用户可以在其中重新排序选项卡。 但是在某些 ViewController 中,当用户单击按钮时,我需要转到另一个选项卡。我
我创建了一个带有 4 个 UIViewController 的 TabBarController。但是,当我想在 TabBarController 中显示 ViewController 之一时: fu
所以我是一名初级开发人员。并且只是想拥有一个 UITabBarController。我启动了一个新的基于 View 的应用程序。遵循 iPhone 开发初学者(第 7 章)中 Mark、Nutting
我正在开发一个 iphone 应用程序,其中前四个屏幕是基于导航的。 从第五个屏幕开始,设计更改为基于 Tabbar 的.在这个基于标签栏的部分中,我们能够导航每个标签上的 subview 。 我如何
我在我的应用程序中使用了标签栏 Controller 。在应用程序的大部分行为中,我们只有一个方向 (interfaceOrientationPortrait)。但我有一个在 WebView 中运行视
我一直在试图找出为什么 TabBarController 总是可见的。我一直在尝试实现每次更改 View Controller 时都不会重新加载的 iAd。通过将 iAd 附加到 TabBar,我能够
在我的模态视图 Controller 中,您可以在两个选项之间进行选择,然后每个选项都显示一个 tabBar 等等。我的模态视图显然会自动旋转,但 tabBar 不会,即使我为项目中的每个 UIVie
我已经以编程方式创建了一个带有 View 等的TabBarController。现在我想在按下按钮时显示这个TabBarController。我怎么做?目前我以模态方式呈现它,但它不起作用 - 抛出
我是一名优秀的程序员,十分优秀!