当前位置: 首页 > 面试题库 >

带UIAlertAction的增量标签栏标记是否快捷?

酆鸿哲
2023-03-14
问题内容
@IBAction func addToCart(sender: AnyObject) {
    let itemObjectTitle = itemObject.valueForKey("itemDescription") as! String
    let alertController = UIAlertController(title: "Add \(itemObjectTitle) to cart?", message: "", preferredStyle: .Alert)
    let yesAction = UIAlertAction(title: "Yes", style: UIAlertActionStyle.Default) { (action) in
    var tabArray = self.tabBarController?.tabBar.items as NSArray!
    var tabItem = tabArray.objectAtIndex(1) as! UITabBarItem
    let badgeValue = "1"
    if let x = badgeValue.toInt() {
        tabItem.badgeValue = "\(x)"
    }
}

我不知道为什么我不能只做+ =“(x)”

错误:二进制运算符’+ =’无法应用于类型为’String?’的操作数 和“字符串”

我希望它在用户每次选择“是”时增加1。现在,显然它只是停留在1。


问题答案:

您可以尝试访问badgeValue并将其转换为Integer,如下所示:

迅捷2

if let badgeValue = tabBarController?.tabBar.items?[1].badgeValue,
    nextValue = Int(badgeValue)?.successor() {
    tabBarController?.tabBar.items?[1].badgeValue = String(nextValue)
} else {
    tabBarController?.tabBar.items?[1].badgeValue = "1"
}

Swift 3或更高版本

    if let badgeValue = tabBarController?.tabBar.items?[1].badgeValue,
        let value = Int(badgeValue) {
        tabBarController?.tabBar.items?[1].badgeValue = String(value + 1)
    } else {
        tabBarController?.tabBar.items?[1].badgeValue = "1"
    }

要删除徽章,只需将nil分配给重写viewDidAppear方法的badgeValue:

override func viewDidAppear(animated: Bool) {
    tabBarController?.tabBar.items?[1].badgeValue = nil
}


 类似资料:
  • 问题内容: 在VC1(集合视图)中,这是我的prepareforsegue代码: 当我进入VC2(它是TabBarViewController)时,我println()selectedIndexPassing看看返回了什么。它正确返回。然后,在VC2中,我将此调用prepareforsegue转到实际的视图控制器或选项卡栏中的第一个按钮: 但是,当我在VC3(PlayerFromRosterVie

  • 标签栏是一种特殊情况的工具栏,它包含图标(或者是带有文案的图标),而不是普通的文本,并且和标签页一起使用。 标签栏布局 标签栏和工具栏基本一致,但是它有额外的"tabbar"类: <div class="toolbar tabbar"> <div class="toolbar-inner"> <a href="#tab1" class="tab-link active">

  • 问题内容: 因此,我在大学期间正在学习有关HTML列表的知识,这位教授说与其他标记(如和)一起没有结尾标记。那是正确的吗?因为最后我看到了很多使用tag的模板/主题,还有许多网站也教您存在,所以我不确定该相信谁以及正确的使用方式是什么? 我问这个问题的原因是因为上次我们了解了标记,他说,当您将鼠标悬停在该属性上时,该属性会为您提供一个显示在图像上方的文本,当我在此处询问该属性时,它仅是替换图像的替

  • 本功能是响应大家需求,后期加上的,其实本人在公司项目或者个人项目中是不太使用该功能的。以前那些传统后台框架往往会包含此功能,由于以前的后台项目大部分都是多页面的形式,所以标签栏导航功能还是具有一定意义的,大部分都是基于 iframe 的方式实现的。 但随着时代的发展,现在的后台项目几乎都是 spa(single page web application 单页面开发),再使用以前的方案来实现标签导航

  • 引入 import { createApp } from 'vue'; import { Tabbar, TabbarItem } from 'vant'; const app = createApp(); app.use(Tabbar); app.use(TabbarItem); 代码演示 基础用法 v-model 默认绑定选中标签的索引值,通过修改 v-model 即可切换选中的标签。 <

  • import { Tab,TabItem } from 'feui'; components: { [Tab.name]: Tab, [TabItem.name]: TabItem, } 代码演示 基础用法 <fe-tab> <fe-tabitem selected @on-item-click="onItemClick">微信支付</fe-tabitem> <fe