- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试为我的应用中的每个 ViewController 实现一个自定义后退按钮。我希望它有两个 Action 。如果按钮被点击,它应该正常运行并进入导航堆栈。如果按钮被按下时间越长,它应该转到预定义的 ViewController。
如何在 swift 中仅针对后退按钮实现此目的?
最佳答案
您可以隐藏默认导航后退按钮并通过这种方式添加自定义按钮:
import UIKit
class SViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//hide your default back button
navigationController!.setNavigationBarHidden(false, animated:true)
//create a new button
var myBackButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
myBackButton.addTarget(self, action: "popToRoot:", forControlEvents: UIControlEvents.TouchUpInside)
myBackButton.setTitle("Back", forState: UIControlState.Normal)
myBackButton.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
myBackButton.sizeToFit()
//create a LongPressGestureRecognizer
var longPressGesture = UILongPressGestureRecognizer(target: self, action: "longPressAction:")
//add LongPressGestureRecognizer into button
myBackButton.addGestureRecognizer(longPressGesture)
var myCustomBackButtonItem:UIBarButtonItem = UIBarButtonItem(customView: myBackButton)
self.navigationItem.leftBarButtonItem = myCustomBackButtonItem
}
//this method will call when you tap on button.
func popToRoot(sender:UIBarButtonItem){
self.navigationController!.popToRootViewControllerAnimated(true)
}
//this method will call when you long press on button
func longPressAction(gestureRecognizer:UIGestureRecognizer) {
//initiate your specific viewController here.
println("Long press detected")
}
}
关于iOS/swift : How to implement longPressed action for backButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517434/
这段代码一直有效,直到我将我的项目从 ios4 转换为 ios6 (+ARC) 并将我的 xib 文件换成 Storyboard。现在我所做的任何点击都算作长按。 手势设置 - (void)viewD
我在我的集合 View 中使用 UILongPressGestureRecognizer,我希望长按手势识别器只有在满足特定条件时才能工作。 NSString *check; if([check
我将更改fabric.js中长按的延迟(使用eventjs构建),但它没有改变。我做错了什么? canvas.on('touch:longpress', longPress, { de
我的表格 View 单元的 UI 遇到奇怪的交互缺陷。我实现了长按手势: func handleLongPress(sender:UILongPressGestureRecognizer!) {
我已经尝试了一段时间来完成这项工作。这种方法似乎在互联网上的几个地方都有效,但不适合我。请注意,当我在手机上尝试时,这在 Dreamweaver(和 chrome)中有效,但在 Eclipse Ind
在我的 GestureDetector 中调用 LongPress 后,如何监听移动事件? 当用户 LongClick 时,他开始选择模式,并且可以将一个正方形拖到屏幕中。但是我注意到在消费了 Lon
当 customView 执行 longPress 时,我想在 customView 上启用 UIPanGestureRecognizer。 (我希望当你longPresscustomView时,cu
我正在尝试使 imageView 在长按时增加尺寸,并在我取消按下后恢复正常。 public class MainActivity extends Activity { private class E
嘿伙计们,我试图让一个 View 出现在父 View 中的长按上,并使其可拖动和可收缩,但就像现在一样,我只能使它成为可拖动的,但收缩不起作用。这是我的代码 class MainVC: UIViewC
我有一个 ListFragment Activity 。 我想为 onItemClickedLongPress 创建一个方法,以便当用户执行此操作时。弹出一个菜单。我熟悉创建菜单。 因此,如果有人愿意
我有一个 UITableView,我正在向它的 UITableViewCell 添加一个 UILongPressGestureRecognizer,如下所示: // Setup Event-Handl
目前我正在开发一个电子邮件应用程序,并希望通过我的应用程序打开所有带有 mailto 方案的链接,而不是默认的 Apple 邮件应用程序。 例如,我有一个这样的链接 mailto_test 在 UIW
我正在开发一个简单的 android 应用程序,我的要求是, “在屏幕上发生一些移动事件(MotionEvent.ACTION_MOVE 为真)后,如果用户在某处停止移动几秒钟而没有将手指从屏幕上移开
这似乎是一个有点奇怪的问题。我在迭代 tableViewCell 中有一个 UIButton在 tableView那是放在常规的ViewController .出于某种原因,它在长按时看起来只是被点击
我需要在适用于 Android 和 iOS 的 Flutter 行元素上实现长按选择。有什么帮助吗? 到目前为止我的代码: class ListElement extends StatelessWid
https://drive.google.com/file/d/0B0alJDsAgypmSElpZUZ1U05zcGM/view?usp=sharing我想要这样的东西,我检查了弧形菜单,但是我们点
我希望用户能够长按 volumeUp 硬件按钮以跳过歌曲,并在短按时执行常规的 volumeUp 操作。 我能够区分两者(我发现 this solution,使用 onKeyDown、onKeyLon
我尝试使用长按手势和配置为连续更新的步进器来设置 View 。长按时,不会出现步进器的连续特征。目前,我已禁用长按。我想我不需要它。但为了将来引用,我将如何允许两者共存? 需要明确的是,这是我尝试此操
All Boxes 是 UITextField。我想在用户长按 UITextField 时更改背景颜色。 长按哪个TextField UITextField颜色变了,不是所有的UITextField
在没有释放屏幕(使用手势检测器)的情况下调用 Longpress 后应该如何调用滚动事件? 这是我的类(class): public class TestingGestureDetector exte
我是一名优秀的程序员,十分优秀!