作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我尝试使用 uiview 实现登录/注册段控件,其中包含用两个 View Controller (带有 xib 文件)初始化的两个 subview 。我从 https://www.youtube.com/watch?v=e5nxg5NzLks 得到这个想法视频,我将所有元素放在 xib 界面上。但是,即使我设置正确,该按钮也无法工作。
class RegisterLoginVC: UIViewController {
@IBOutlet weak var segmentedControl: BetterSegmentedControl!
@IBOutlet weak var container: UIView!
var subviews : [UIView]!
override func viewDidLoad() {
super.viewDidLoad()
print("this is main page superview")
//change the value of segmented control
segmentedControl.segments = LabelSegment.segments(withTitles: ["Login", "Sign Up"],
normalFont: UIFont(name: "Avenir", size: 20.0)!,
normalTextColor: Utilities.hexStringToUIColor(hex: "FEC341"),
selectedFont: UIFont(name: "Avenir-Heavy", size: 20.0)!,
selectedTextColor: .white)
//initialize login and signup subview
subviews = [UIView]()
subviews.append(LoginVC().view)
subviews.append(SignUpVC().view)
// add subviews to container
for v in subviews{
container.addSubview(v)
//add subview constraints to be framed inside container
v.translatesAutoresizingMaskIntoConstraints = false
v.leftAnchor.constraint(equalTo: container.leftAnchor).isActive = true
v.topAnchor.constraint(equalTo: container.topAnchor).isActive = true
v.rightAnchor.constraint(equalTo: container.rightAnchor).isActive = true
v.bottomAnchor.constraint(equalTo: container.bottomAnchor).isActive = true
}
//set login subview as default
container.bringSubviewToFront(subviews[0])
}
// when the segmented control was selected
@IBAction func segmentedCtrlChanged(_ sender: BetterSegmentedControl) {
self.container.bringSubviewToFront(subviews![Int(sender.index)])
}
}
上面是我的主页面 View Controller ,下面是我的登录 subview Controller
import UIKit
class LoginVC: UIViewController {
@IBOutlet weak var forgetPasswordLink: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
print("omg!")
// Do any additional setup after loading the view.
}
@IBAction func forgetPasswordTapped(_ sender: UIButton) {
print("normal button works")
}
}
我还附上了登录 subview xib 和文件所有者屏幕截图
最佳答案
我是那个发布问题的人,我只是以某种方式找到了一个令人讨厌的丑陋的解决方案,但至少它受到了视频作者的下一个视频的启发。
所以我实际上从主视图 Controller 访问登录 View Controller 实例,并访问其按钮导出,当我切换控件时,我在该按钮实例上添加了一个目标并且它起作用了。
但是这很困惑,因为所有 subview 的 Controller 工作都将在主视图 Controller (而不是它们自己的 vc)中处理。希望这能给某人一些见解,帮助我找到错误并帮助我找到更好的解决方案。
谢谢
关于XIB 界面上的 IOS 按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55055817/
我是一名优秀的程序员,十分优秀!