直到现在,我仍然不知道如何在一个视图控制器中切换多个视图。我的故事板就像这个。

现在,我想在我的视图控制器中嵌入两个视图。

到目前为止,我的分段控件代码可以在一个视图控制器中切换两个视图。
import UIKit
class PopularHistoryViewController: UIViewController {
@IBOutlet weak var segmentedControl: UISegmentedControl!
@IBAction func indexChanged(sender: UISegmentedControl) {
switch segmentedControl.selectedSegmentIndex
{
case 0:
NSLog("Popular selected")
//show popular view
case 1:
NSLog("History selected")
//show history view
default:
break;
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}另一件事,如果我把两个视图放在我的控制器内,什么是区分它的最佳实践呢?
发布于 2015-01-15 03:35:07
可以使用UIView的UIView属性显示/隐藏所需的视图。首先,必须通过接口构建器将两个视图链接到IBOutlets
@IBOutlet weak var historyView: UIView!
@IBOutlet weak var popularView: UIView!
@IBAction func indexChanged(_ sender: UISegmentedControl) {
switch segmentedControl.selectedSegmentIndex {
case 0:
historyView.isHidden = true
popularView.isHidden = false
case 1:
historyView.isHidden = false
popularView.isHidden = true
default:
break;
}
}注意:它在Swift 1和2中被命名为hidden。
发布于 2015-01-16 00:07:23
如果您想要为两个重叠的子视图执行Xcode中的UI布局,更好的解决方案是使用两个UIContainerViewController,并使用上述答案中建议的相同方式设置隐藏属性。

发布于 2015-01-15 03:36:57
首先,创建两个插座,并将软管连接到ViewController中的视图。
@IBOutlet weak var firstView: UIView!
@IBOutlet weak var secondView: UIView!并将代码更改如下:
@IBAction func indexChanged(sender: UISegmentedControl)
{
switch segmentedControl.selectedSegmentIndex
{
case 0:
firstView.hidden = false
secondView.hidden = true
case 1:
firstView.hidden = true
secondView.hidden = false
default:
break;
}
}如果您不想创建出口,则分配视图单独的标记(例如101和102),您可以这样做:
@IBAction func indexChanged(sender: UISegmentedControl)
{
switch segmentedControl.selectedSegmentIndex
{
case 0:
self.view.viewWithTag(101)?.hidden = false
self.view.viewWithTag(102)?.hidden = true
case 1:
self.view.viewWithTag(101)?.hidden = true
self.view.viewWithTag(102)?.hidden = false
default:
break;
}
}https://stackoverflow.com/questions/27956353
复制相似问题