我做了一个应用程序内的自定义键盘,取代了系统键盘,当我点击内部时弹出UITextField.
这是我的代码:
class ViewController: UIViewController {
var myCustomKeyboard: UIView!
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let keyboardNib = UINib(nibName: "Keyboard", bundle: nil)
myCustomKeyboard = keyboardNib.instantiateWithOwner(self, options: nil)[0] as! UIView
textField.inputView = myCustomKeyboard
}
}
Run Code Online (Sandbox Code Playgroud)
键盘布局是从xib文件加载的.
如何将按钮文本放入文本字段?
笔记:
更新
我需要tableview通过单击内的按钮将字符串从一个字符串传输到另一个字符串UITableView。我知道如何indexPath通过按钮获取通行符,如下所示:
let button = sender as MyButton
let view = button.superview!
let cell = view.superview as! MyTableViewCell
let indexPath = tableView.indexPathForCell(cell)
Run Code Online (Sandbox Code Playgroud)
上面的代码可以在单击按钮时获取单元格的索引路径,但是为了传输数据,我必须使用prepareForSegue。因此,我自然会尝试使用segue进行准备并更改senderfrom AnyObject?至MyButton
然后,我收到一条错误消息,提示“ 使用选择器prepareforsegue的重写方法具有不兼容的type”。
我delegates迅速搜索并了解了这些内容以及它们如何提供帮助,并在此处尝试了MakeAppPie给出的答案:
代表们迅速?但这对我没有用。
有什么方法可以将segue的准备工作与上面的代码结合起来吗?我尝试了此操作,但是它导致了我上面刚刚提到的错误消息:
override func prepareForSegue(segue: UIStoryboardSegue, sender: MyButton) {
let myVC = segue.destinationViewController as? CommentsViewController
let usender:AnyObject = sender!
let button = usender as? MyButton
let view = button.superview!
myVC!.title = button.titleForState(.Normal)
let cell = view.superview as! QuestionCell …Run Code Online (Sandbox Code Playgroud) 我有两个ViewControllers,FirstViewController和SecondViewController.两者都有自己的Swift文件,FirstViewController.swift和SecondViewController.swift.
FirstViewController.swift 包含:
class FirstViewController: UIViewController {
@IBAction func callFunctionInOtherClass(sender: AnyObject) {
// Call "func showAlert" in SecondViewController when clicking the UIButton in FirstViewController
}
}
Run Code Online (Sandbox Code Playgroud)
SecondViewController.swift 包含:
class SecondViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
func showAlert(sender: AnyObject) {
let alert = UIAlertView(title: "Working!", message: "This function was called from FirstViewController!\nTextField says: \(textField.text!)", delegate: nil, cancelButtonTitle: "Okay")
alert.show()
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够func showAlert()在SecondViewController录制时调用UIButtonin FirstViewController. …
我的设计碰壁了。我试图将字符串从一个视图控制器传递到另一个视图控制器。这两个控制器没有与 segue 连接。我附上了我的故事板的屏幕截图。我有一种感觉,我唯一的选择是使用单例,或者代表可以吗?不使用方法:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
Run Code Online (Sandbox Code Playgroud)
我无法通过 segue 标识符访问 VC1。如果不访问标识符,那怎么可能呢?
请看一下图片,让我知道我有哪些选择以及在这里最好使用什么。
