[Swift3] SegmentdControl에서 View 전환
하고 싶은 일
SegmentedControl에서 여러 View를 전환하고 싶은 장면은 자주 있다고 생각하므로, 망비록으로 써 남겨 둡니다.
화면 준비
먼저 다음과 같이 StoryBoard에서 NavigationController를 추가합니다.
NavigationController를 추가한 후 ViewController에 SegmentedControl을 설치합니다.
또, 이번에 전환하는 아이 ViewController는 코드상에서 작성하기로 합니다.
SegmentedControl 준비
SegmentedControl의 Segue를 ViewController에 생성합시다. IBAction을 만들 때 Type을 Any가 아닌 UISegmentedControl로 설정하여 다운 캐스트하지 않고받을 수 있습니다.
ViewController
소스는 다음과 같습니다. 이 예제에서는 MapViewController,ListViewController라는 두 개의 VC를 만들고 setup에서 해당 뷰를 추가합니다.
SegmentedControl이 탭되면 인수인 sender에서 selectedSegmentIndex로 탭한 항목을 검색할 수 있습니다. 색인은 왼쪽에서 순서대로 흔들립니다.
switch 문에서 항목에 따른 view를 최전면으로 이동시켜 화면 전환을 실시하고 있습니다.
ViewController.swiftimport UIKit
class ViewController: UIViewController {
var MapVC:MapViewController = MapViewController()
var ListVC:ListViewController = ListViewController()
@IBOutlet weak var segmentButton: UISegmentedControl!
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
func setup(){
segmentButton.setTitle("Map", forSegmentAt: 0)
segmentButton.setTitle("List", forSegmentAt: 1)
MapVC.view.backgroundColor = UIColor.cyan
ListVC.view.backgroundColor = UIColor.magenta
self.view.addSubview(ListVC.view)
self.view.addSubview(MapVC.view)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func segmentButton(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
self.view.bringSubview(toFront: MapVC.view)
case 1:
self.view.bringSubview(toFront: ListVC.view)
default:
print("")
}
}
}
실행하면 아래와 같이 시안 화면이 표시되고 SegmentedControl을 탭하면 마젠타 화면을 표시할 수 있습니다.
Reference
이 문제에 관하여([Swift3] SegmentdControl에서 View 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Tanashun/items/c38c8a2172f959755716
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import UIKit
class ViewController: UIViewController {
var MapVC:MapViewController = MapViewController()
var ListVC:ListViewController = ListViewController()
@IBOutlet weak var segmentButton: UISegmentedControl!
override func viewDidLoad() {
super.viewDidLoad()
setup()
}
func setup(){
segmentButton.setTitle("Map", forSegmentAt: 0)
segmentButton.setTitle("List", forSegmentAt: 1)
MapVC.view.backgroundColor = UIColor.cyan
ListVC.view.backgroundColor = UIColor.magenta
self.view.addSubview(ListVC.view)
self.view.addSubview(MapVC.view)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func segmentButton(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
self.view.bringSubview(toFront: MapVC.view)
case 1:
self.view.bringSubview(toFront: ListVC.view)
default:
print("")
}
}
}
Reference
이 문제에 관하여([Swift3] SegmentdControl에서 View 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Tanashun/items/c38c8a2172f959755716텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)