ios在选择uitabbarcontroller项目时检索
Posted
技术标签:
【中文标题】ios在选择uitabbarcontroller项目时检索【英文标题】:ios retrieve when uitabbarcontroller item is selected 【发布时间】:2011-09-19 22:02:20 【问题描述】:当用户单击 tabbaritem 进入 uitabbarcontroller 以更改某些内容时,我需要检索.. 这是我的代码:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
if (item == [tabBarController.tabBar.items objectAtIndex:2])
item.title = @"add shot";
else
item.title = @"Race";
但如果我这样做:
self.tabBarController.tabBar.delegate = self;
我收到了一个信号...
什么是正确的解决方案?提前致谢
【问题讨论】:
【参考方案1】:您的视图控制器是否符合 UITabBarDelegate 协议? 在头文件中:
@interface MyViewController : UIViewController<UITabBarDelegate>
// ...
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;
@end
然后,做:
tabBar.delegate = self;
代替:
self.tabBarController.tabBar.delegate = self;
还有:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
//self.tabBarItem.title = @"Title";
【讨论】:
with tabBarController.delegate 没有给我 sigkill,但 didSelectItem 方法属于 UITabBarDelegate,而不是 UITabBarControllerDelegate 更新答案,试试看。【参考方案2】:我在学习 ios 开发时遇到了这个答案,但我想为像我这样的 n00bs 包括一些缺失的部分。
// HelloWorldViewController.h
@interface HelloWorldViewController : UIViewController <UITabBarDelegate>
@property (weak, nonatomic) IBOutlet UITabBar *tabBar;
@end
和
// HelloWorldViewController.m
@interface HelloWorldViewController ()
@end
@implementation HelloWorldViewController
@synthesize tabBar;
- (void) viewDidLoad
tabBar.delegate = self;
-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
NSLog(@"didSelectItem: %d", item.tag);
@end
【讨论】:
太棒了!你让我今天一整天都感觉很好!非常适合我的一段代码!以上是关于ios在选择uitabbarcontroller项目时检索的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS7 UITabbarController 中,如何在点击已选择的 tabBarItem 时停止将 navigationController 重置为 root?
iOS 7 - 呈现模式视图控制器选择 UITabBarController 中的第一个选项卡
iOS基础之UITabBarController(标签视图控制器)
如何在用户选择时在 uitabbarcontroller 内的 uinavigationcontroller 中每次都初始化 viewcontroller