Swift 使用UISegmentedControl设置默认为首次不显示数据

Swift 使用UISegmentedControl设置默认为首次不显示数据,swift,Swift,override func viewDidLoad(){ super.viewDidLoad() //加载视图后,通常从nib执行任何其他设置。 segmentedControl=UISegmentedControl(项:[“显示Html”、“显示DF”、“加载有关PDF的数据”]) segmentedControl.frame=CGRect(x:0,y:20,宽度:self.view.frame.width,高度:30) webView.frame=CGRect(x:0,y:60,宽度:sel

override func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
segmentedControl=UISegmentedControl(项:[“显示Html”、“显示DF”、“加载有关PDF的数据”])
segmentedControl.frame=CGRect(x:0,y:20,宽度:self.view.frame.width,高度:30)
webView.frame=CGRect(x:0,y:60,宽度:self.view.frame.width,高度:self.view.frame.height)
self.view.addSubview(webView)
self.view.addSubview(分段控件)
segmentedControl.selectedSegmentIndex=0
}
func值已更改(发送方:UISegmentedControl)
{
let index=sender.selectedSegmentIndex
开关指数
{
案例0:webView.loadHTMLString(“,baseURL:nil)
案例1:
让path=NSBundle.mainBundle().pathForResource(“Stm32”,类型为“pdf”)!
让url=NSURL.fileURLWithPath(路径)
打印(url)
loadRequest(NSURLRequest(URL:URL))
案例2:
让path=NSBundle.mainBundle().pathForResource(“Stm32”,类型为“pdf”)
让url=NSURL.fileURLWithPath(路径!)
let data=NSData(contentsOfURL:url)
loadData(data!,MIMEType:“application/pdf”,textcodengname:“utf-8”,baseURL:url)
默认值:打印(“未知”)
}
}
当我想使用UISegmentedControl切换到不同的UIWebView加载数据模式时,默认选择UISegmentedControl索引的第一个,但不显示数据,不知道是什么原因。您能帮助我吗?

在最后一行视图中调用ValueChanged()加载或调用webView.loadHTMLString(…)
. 调用selectedSegmentIndex并不意味着自动调用ValueChanged

两件事:1。从iOS 5开始,以编程方式设置
selectedSegmentIndex
和2时,不会触发
值更改
事件。您需要将控件“连接”到处理程序函数。创建
UISegmentedControl

segmentedControl.addTarget(self, action: "ValueChanged:", forControlEvents:.ValueChanged)

我记得,我必须在测试之前加入addTarget几次,但也不会显示数据。感谢您的帮助,我编辑了代码,并将ValueChanged(segmentedControl)这个调用添加到我的viewDidLoad()方法中。现在可以直接显示启动后的数据。
segmentedControl.addTarget(self, action: "ValueChanged:", forControlEvents:.ValueChanged)