ios - 尝试设置 selectedImage 时 UITabBarItem 没有可见界面

标签 ios objective-c cordova

我看到您可以为 UITabBarItem 添加一个 selectedImage 和一个图像,所以我修改了一个 Cordova 插件来添加:

UIImage *tabIcon = [UIImage imageNamed:imageName];
UIImage *selectedTabIcon = [UIImage imageNamed:selectedImage];
tabIcon = [tabIcon imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
selectedTabIcon = [selectedTabIcon imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
item = [[UITabBarItem alloc] initWithTitle:title image:tabIcon tag:tag selectedImage:selectedTabIcon];

此处selectedImage变量是插件传入的字符串:

  NSString  *name      = [arguments objectAtIndex:0];
  NSString  *title     = [arguments objectAtIndex:1];
  NSString  *imageName = [arguments objectAtIndex:2];
  NSString *selectedImage = [arguments objectAtIndex:3];
  int tag              = [[arguments objectAtIndex:3] intValue];

然而,当我尝试编译它时,出现以下错误:

/Users/tomchambers/work/cordova-ios-tab-bar/src/ios/CDVTabBar.m:266:34: error: no visible @interface for 'UITabBarItem' declares the selector 'initWithTitle:image:tag:selectedImage:' item = [[UITabBarItem alloc] initWithTitle:title image:tabIcon tag:tag selectedImage:sel... ~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated.

** BUILD FAILED **

我对 Objective C 没有经验,所以我认为这可能是我在这里遗漏的一些简单的东西。


当使用不同的方法时(图像肯定存在):

  UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"random" image:[UIImage imageNamed:@"www/assets/images/tab-bar-icons/ic_mail_outline.png"] selectedImage:[UIImage imageNamed:@"www/assets/images/tab-bar-icons/ic_mail_outline.png"]];

2016-02-08 11:48:31.367 Movidiam[1847:843403] Apache Cordova native platform version 3.9.2 is starting.
2016-02-08 11:48:31.369 Movidiam[1847:843403] Multi-tasking -> Device: YES, App: YES
2016-02-08 11:48:31.372 Movidiam[1847:843403] Unlimited access to network resources
2016-02-08 11:48:31.679 Movidiam[1847:843403] [CDVTimer][statusbar] 152.289033ms
2016-02-08 11:48:31.680 Movidiam[1847:843403] [CDVTimer][TotalPluginStartup] 152.797997ms
2016-02-08 11:48:31.847 Movidiam[1847:843403] Resetting plugins due to page load.
2016-02-08 11:48:34.294 Movidiam[1847:843403] -[__NSDictionaryM intValue]: unrecognized selector sent to instance 0x13f82d430
2016-02-08 11:48:34.295 Movidiam[1847:843403] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDictionaryM intValue]: unrecognized selector sent to instance 0x13f82d430'
*** First throw call stack:
(0x1834f9900 0x182b67f80 0x18350061c 0x1834fd5b8 0x18340168c 0x1000eaf4c 0x100102528 0x100101df4 0x183ebbe20 0x1834b0efc 0x1834b0990 0x1834ae690 0x1833dd680 0x1848ec088 0x188254d90 0x1000c7814 0x182f7e8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

最佳答案

您用来实例化 TabBarItem 的方法不存在。您必须使用其中任何一个:

UITabBarItem * item = [[UITabBarItem alloc] initWithTitle:@"title" image:[UIImage imageNamed:@"image.png"] tag:1];

UITabBarItem *item1 = [[UITabBarItem alloc] initWithTitle:@"title" image:[UIImage imageNamed:@"image.png"] selectedImage:[UIImage imageNamed:@"selectedImage.png"]]; 

关于ios - 尝试设置 selectedImage 时 UITabBarItem 没有可见界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35267719/

相关文章:

ios - JSQMessageViewController - 如何将集合单元格设置为传入或传出单元格?

iphone - 创建数据的自定义格式文件并实现以应用程序格式导出功能并在应用程序中打开文件

objective-c - 我可以让 AFNetworking 自动将 NULL 解析为 nil 吗?

android - 如何显示 Cordova PhotoLibrary 返回的图像?

cordova - 我可以使用 onsen ui 在同一页面的左侧和右侧添加两个滑动菜单吗

ios - 如何为 sprite-kit 游戏创建加载屏幕

ios - 使用 Objective C 创建 JSON 数据并将其发送到服务器

ios - 如何控制 UIDatePickerModeCountDownTimer 最小组件?

android - 奇怪的符号出现在 Android 上的 HTML 中 - phonegap 应用程序

ios - NSMutableAttributedString 不起作用