(iOS) ํ๋ฉด ์ ํ ๋ฐฉ์ (present, pushViewController, Segue)
- -
iOS์ ํ๋ฉด ์ ํ ๋ฐฉ์
IOS์ ํ๋ฉด ์ ํ ๋ฐฉ์์ ํฌ๊ฒ2๊ฐ์ง๋ก ๋๋๋ค.
1. ์์ค์ฝ๋์์ ๊ตฌํ - "ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ํ๋ฉด ์ ํํ๋ค" or "๋์ ์ผ๋ก ํ๋ฉด ์ ํํ๋ค."
2. ์คํ ๋ฆฌ๋ณด๋์์ ๊ตฌํ - "GUI ๋ฐฉ์์ผ๋ก ํ๋ฉด์ ์ ํํ๋ค." or "์ ์ ์ผ๋ก ํ๋ฉด์ ์ ํํ๋ค."
1๋ฒ์ ๊ฒฝ์ฐ์๋ ํน์ ์ํฉ์ ๋์ํ ์ ์์ง๋ง, ๊ตฌํ์ด ์ด๋ ต๊ณ ๋ณต์กํ๋ค.
2๋ฒ์ ๊ฒฝ์ฐ๋ ํน์ ์ํฉ์ ๋์ํ๊ธฐ ์ด๋ ต์ง๋ง, ๊ตฌํํ๊ธฐ๋ ์ฝ๋ค๋ ์ฅ์ ์ด ์๋ค.
IOS์์์ ํ๋ฉด ์ ํ ๊ฐ๋ ๊ณผ ์ข ๋ฅ
1. ViewController์ View ์์ ๋ค๋ฅธ View๋ฅผ ๊ฐ์ ธ์ ๊ต์ฒดํ๋ ๋ฐฉ์
- ํน์ํ ์ํฉ์์ ์ ํ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. (= ์์ฃผ ์ฌ์ฉ๋์ง ์๋๋ค.)
- ์ด๋ฅผ
Container View Controller
๋ผ๊ณ ํ๋ค. - ์ด ๋ฐฉ์์ ์ ์ธํ 2,3,4๋ฒ์ ๋ชจ๋ ๋ด๋ถ์ ์ผ๋ก๋ View Contoller๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
2. ViewController
์์ ๋ค๋ฅธ ViewController
๋ฅผ ํธ์ถํ์ฌ ํ๋ฉด ์ ํํ๋ ๋ฐฉ์.
3. ๋ค๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฉด ์ ํํ๋ ๋ฐฉ์.
4.ํ๋ฉด ์ ํ์ฉ ๊ฐ์ฒด ์ธ๊ทธ์จ์ด(Segueway)๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์.
์ฆ, 1๋ฒ์ ์ ์ธํ 2,3,4 ๋ฐฉ์์ ์๋ก์ด ํ๋ฉด์ ๋ด๋นํ ViewController
์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , ์ด๋ฅผ ๋ถ๋ฌ๋ค์ฌ ๊ธฐ์กด ํ๋ฉด์ ๋ฎ์ด ์์ฐ๋ ๋ชจ์์์ ๋ฐฉ์์ด๋ค.
๋ฐ๋ผ์ ๊ธฐ์กด ํ๋ฉด - ์๋ก์ด ํ๋ฉด ์ฌ์ด์๋ ์ํธ ์ฐธ์กฐ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝ๋๋ค. (์ง์ ์ฐธ์กฐํ๊ฑฐ๋, ํน์ ๋ธ๋ฆฌ๊ฒ์ดํธ ๊ฐ์ฒด๋ฅผ ํตํด ๊ฐ์ ์ฐธ์กฐํ ์๋ ์๋ค.) ์ํธ ์ฐธ์กฐํ๋ ์ด์ ๋ ํ๋ฉด์ด ์ ํ๋ ํ์๋ ์ด์ ํ๋ฉด์ ๋ํ ์ฐธ์กฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ์ ์ผ๋ก ์ด์ ํ๋ฉด์ผ๋ก ๋๋์๊ฐ์ผํ๋ ๊ฒฝ์ฐ์ด๋ค.
ํ๋ฉด ์ ํ์์ ์ค์ํ๊ฒ์ ๋ค์ ํ๋ฉด์ผ๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด์ ํ๋ฉด์ผ๋ก ๋๋์๊ฐ๋ ๋ฐฉ๋ฒ์ ๋ช ํํ ๊ตฌ๋ถํด์ฃผ์ด์ผ ์ถฉ๋์ ํผํ ์ ์๋ค๋๊ฒ์ด๋ค. ํ๋ฉด์ด๋์์ ํ๋ฉด์ ๊ณ์ ์๋ ํํ์ด๊ธฐ ๋๋ฌธ์, ์ด์ ํ๋ฉด์ผ๋ก ๋์๊ฐ๋๋ ํ๋ฉด์ ๊ฑท์ด๋ด๋ ๋ฐฉ์์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
(1) ViewController ์ง์ ํธ์ถ์ ์ํ ํ๋ฉด ์ ํ : ํ๋ ์ ํ ์ด์ ๋ฐฉ์ ํ๋ฉด์ ํ
๋ชจ๋ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ UIViewController ํด๋์ค๋ฅผ ์์๋ฐ๋๋ค. ์ด ํด๋์ค์์๋ present
๋ผ๋ ๋ฉ์๋๊ฐ ์ ์๋์ด์๋ค.
Present ๋ฉ์๋
present(<์๋ก์ด ๋ทฐ ์ปจํธ๋กค๋ฌ ์ธ์คํด์ค>, animated: <์ ๋๋ฉ์ด์ ์ฌ๋ถ(Bool)>)
present(<์๋ก์ด ๋ทฐ ์ปจํธ๋กค๋ฌ ์ธ์คํด์ค>, completion: <ํ๋ฉด ์ ํ ์๋ฃ๋ ์คํ๋ ๋ฉ์๋>)
ํ๋ฉด์ ํ์ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ๋ฐ๋ผ์ ํ๋ฉด์ ๋ถ๋ฌ์จ ์์ ์ ์คํ๋ ๋ก์ง์ present ๋ฉ์๋ ๋ฐ๋ก ์๋์ ์ ๋๊ฒ์ ์คํจํ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก, completion ์ธ์๋ฅผ ํ์ฉํ๋๊ฒ ์ข๋ค.
๋น๋๊ธฐ ๋ฐฉ์ : ํ๋ฉด ์ ํ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ก๋ ํ๋ฉด์ ๋ถ๋ฌ์ค๋ ์์ ์ ํ๋ฉด์ ๋ค์ ์ฝ๋๋ฅผ ์คํํ๋ค.
presentํ ViewController์ ์ธ์คํด์ค ์์ฑํ๊ธฐ
๋ค์VC์ ์ด์ VC๊ฐ ๊ฐ์ ์คํ ๋ฆฌ๋ณด๋ ํ์ผ์ ์๋ ๊ฒฝ์ฐ
์คํ ๋ฆฌ๋ณด๋์ Identity - storyboard ID ๋ฅผ ์ฌ์ฉํ์ฌ ๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ ์ ํํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์คํ ๋ฆฌ๋ณด๋ ํ์ผ์ ์์ผ๋ฏ๋ก self.storyboard
๋ก ์ ๊ทผํ๋ฉด๋๋ค.
let nextScene = self.storyboard!.instantiateViewController(Identifier: "AfterViewController"
๋ค์VC์ ์ด์ VC๊ฐ ๋ค๋ฅธ ์คํ ๋ฆฌ๋ณด๋ ํ์ผ์ ์๋ ๊ฒฝ์ฐ
let storyboard = UIStoryboard(name : "<์คํ ๋ฆฌ๋ณด๋ ํ์ผ๋ช
>", bundle: Bundle.main)
let afterVC = storyboard.instantiateViewController(identifier: "AfterViewController")
์ด์ ํ๋ฉด์ผ๋ก ๋์๊ฐ๊ธฐ : dismiss
์ด์ ํ๋ฉด์ BeforeVC , ๋์ค ํ๋ฉด์ AfterVC ๋ผ๊ณ ํ ๋, ์ด ๋๊ฐ์ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ ์๋ก ์ฐธ์กฐํ ์ ์๋๋ก ํด์ผํ๋ค. ์๋ก ์๋๋ฐฉ์ ์ฐธ์กฐ ํ ์ ์๋๋ก ํฌ์ธํฐ(์ฃผ์๊ฐ)์ presentedViewController
์์ฑ์ ์ ์ฅํ๋ค.
๋ค์ ํ๋ฉด์ผ๋ก ๋์ด๊ฐ๋๋ present
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ด์ ํ๋ฉด์ผ๋ก ๋๋์๊ฐ ๋๋
dismiss(animated : completion : )
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ด์ ํ๋ฉด์ผ๋ก ๋ณต๊ทํ๋ ๊ฒฝ์ฐ์๋ ๋น์ฐํ ์ธ์๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋ฃ์ด์ฃผ์ง ์์๋ ๋๋ค.
*์ฃผ์ํ ์
ํ์ฌ ๋์ฐ๊ณ ์๋ ํ๋ฉด์ด AfterVC์ด๋ค. ์ด AfterVC๋ฅผ ๋ถ๋ฌ์จ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ ๋น์ฐํ BeforeVC์ด๋ค. ๊ทธ๋ฆฌ๊ณ AfterVC๋ฅผ dismissํ๋๊ฒ๋ BeforeVC๋ผ๋ ์ ์ ์์์ผํ๋ค. ๋ฐ๋ผ์ self.dismiss()
์ ํํ๊ฐ ์๋๋ผ, self.presentingViewController?.dismiss()
์ ํํ๋ก ํธ์ถํด์ผํ๋ค.
์ค์ต(์ฝ๋)
์ด๊ธฐ ํ๋ฉด
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var beforeViewLabel: UILabel!
@IBOutlet weak var beforeViewButton: UIButton!
@IBAction func goNextScene(_ sender: Any) {
// ๋ค์ ํ๋ฉด ๋ทฐ์ปจํธ๋กค๋ฌ์ ์ธ์คํด์ค ์์ฑ (StoryBoardID๋ฅผ ์ด์ฉํ์ฌ ์ฐธ์กฐ)
if let nextScene = self.storyboard?.instantiateViewController(withIdentifier: "AfterScene"){
nextScene.modalTransitionStyle = UIModalTransitionStyle.coverVertical
// ํ๋ฉด ์ ํ ์ ๋๋ฉ์ด์
์ ํ์
self.present(nextScene, animated : true)
print(type(of: self))
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
beforeViewLabel.text = "์ด์ ํ๋ฉด"
beforeViewButton.setTitle("๋ค์ ํ๋ฉด์ผ๋ก ์ด๋ํ๊ธฐ", for: .normal)
}
}
ํ๋ฉด ์ ํ ์คํ์ผ ( modalTransitionStyle)
์ ์ฝ๋์์ ์ฃผ์ : ํ๋ฉด ์ ํ ์ ๋๋ฉ์ด์ ์ ํ์ ๋ถ๋ถ์ ๋ณด๋ฉด
nextScene.modalTransitionStyle = UIModalTransitionStyle.coverVertical
๋ฅผ ๋ณผ ์ ์๋๋ฐ, ์ด๊ฒ์ ํ๋ฉด ์ ํ์์ ์คํ์ผ์ ์ง์ ํ๋ ๋ถ๋ถ์ด๋ค.
UIViewController
์ ์ ์๋์ด ์๋ modalTransitionStyle
์์ฑ์ ํตํ์ฌ ์คํ์ผ์ ์ง์ ํ ์ ์๋ค.
<์ ํ ํ ํ๋ฉด์ ๋ทฐ ์ปจํธ๋กค๋ฌ ์ธ์คํด์ค>.modalTransitionStyle = UIModalTransitionStyle.<๋ชจ๋ฌ์คํ์ผ>
๋ฐ๋ก ์ค์ ํด์ฃผ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ธ coverVertical
๋ก ์ง์ ๋๋ค.
(2) ๋ค๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ด์ฉํ ํ๋ฉด์ ํ
๋ค๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ๋
UINavigationController
๋ ๋ทฐ ์ปจํธ๋กค๋ฌ์ ์ผ์ข
์ด๋ค. ํ์ง๋ง VC์ ์ผ์ข
์ด๋ผ ํด์ ํน๋ณํ ํ๋ฉด์ ๊ฐ์ง๊ณ ์์ง ์์ง๋ง, ๋ค๋ฅธ VC๋ค์ ๊ด๋ฆฌํ๋ ์ญํ ์ ํ๊ฒ ๋๋ค. ๊ณ์ธต์ ์ธ ์ฝํ
์ธ ๋ฅผ ๊ด๋ฆฌํ ๋ ์ ์ฉํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ด๋ฆฌํ์ ์๋ ๋ชจ๋ VC์๋ ๋ค๋น๊ฒ์ด์
๋ฐ๊ฐ ๋ด์ฅ๋๊ฒ ๋๋ค.
๋ค๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ๋ ํ๋ฉด ์ ํ์ ์ง์ ์ปจํธ๋กคํ๋ฉฐ, VC๋ค์ ํฌ์ธํฐ๋ฅผ ์คํ(Stack)์ผ๋ก ๊ด๋ฆฌํ๊ฒ ๋๋ค.
Root VC
๋ค๋น๊ฒ์ด์
์ปจํธ๋กค๋ฌ๋ ํญ์ ์์์ ์ญํ ์ ํ๋ VC๋ฅผ ๊ฐ๊ฒ๋๋๋ฐ, ์ด๋ฅผ ๋ฃจํธ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ผ๊ณ ํ๋ค. ์ด ์ธ์๋ListViewController
, DetailViewController
๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
pushViewController(_:animated:)
๋ค๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ๋ VC๋ค์ ์คํ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ push, pop ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
pushViewController
๋ฉ์๋๋ ์คํ์ VC๋ฅผ ์ถ๊ฐํ๋ ๋ฉ์๋์ด๋ฉฐ, ์คํ์์ ์ต ์์์ ์๋ VC๊ฐ ํ์ฌ ํ๋ฉด์ ํ์๋๋ VC๊ฐ ๋๋ค. (๋ฐ๋ผ์ rootVC๋ ๊ฐ์ฅ ๋ฐ์ ์กด์ฌํ๊ฒ๋๋ค.) ํธ์ถํ๋ ๋์์ self.navigationController
๊ฐ ๋๋ค.
@IBAction func moveNextVC(_sender: Any){
guard let nextVC = self.storyboard?.instantiateViewController(withIdentifier:"nextVC")else{return}
self.navigationController?.pushViewController(nextVC, animated: true)
}
popViewController(animated:)
ํ๋จ๊ณ ์ด์ ํ๋ฉด์ผ๋ก ๋์๊ฐ๋ ค๋ฉด popViewController(animated:)
๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค. UIViewController? ํ์
์ ๊ฐ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์, _ =
๋ฅผ ๋ฃ์ด์ฃผ์ด ๊ฒฝ๊ณ ์ฐฝ์ด ๋จ์ง ์๊ฒ ํด์ค๋ค.
_ = self.navigationController?.popViewController(animated: true)
//Swift์์ ์ธ๋๋ฐ๋ "๊ฐ์ ๋์
ํ ๋ณ์๊ฐ ํ์ํ์ง๋ง, ๊ทธ ๊ฐ์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๋ฏ๋ก ๊ฐ์ ํ ๋นํ์ง ๋ง๋ผ"๋ ์ํฉ์ผ๋ ์ฌ์ฉ๋๋ค. (์ต๋ช
๋ณ์ ์ฒ๋ฆฌ)
๋ค๋น๊ฒ์ด์
์ปจํธ๋กค๋ฌ๊ฐ ์ถ๊ฐ๋์ด ์๋ ViewController๋ผ๋, ํ๋ฉด ์ ํ์ present
๋ฉ์๋๋ก ํ๊ฒ ๋๋ฉด ๋ค๋น๊ฒ์ด์
๋ฐ๊ฐ ์๊ธฐ์ง ์๋๋ค. ๋ค๋น๊ฒ์ด์
์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํญ์ pushViewController๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
(3) ์ธ๊ทธ์จ์ด (Segue)๋ฅผ ํตํ ํ๋ฉด ์ ํ
์ธ๊ทธ์จ์ด๋ ํ๋ฉด๊ฐ์ ์ฐ๊ฒฐ์ ํ๋๋ฐ์ ์ฝ๋๋ฅผ ํ์๋กํ์ง ์๋๋ค. ์คํ ๋ฆฌ๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ ๋ ์ง๊ด์ ์ผ๋ก ๋ณผ ์ ์๊ณ , ์ฝ๋๋ฅผ ์์ฑํ์ง ์์ ๋น ๋ฅด๊ฒ ์์ฑํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ViewController์ ViewController๋ฅผ ์ง์ ์ฐ๊ฒฐํ๋ ์์ผ๋ก ํ๋ฉด ์ ํ์ ๊ตฌํํ๋ ๋ฐฉ์์ด๋ค.
์ธ๊ทธ์จ์ด์ ์ข ๋ฅ
- ๋ฉ๋ด์ผ ์ธ๊ทธ์จ์ด : ViewController ๋ด๋ถ์ ์ฝ๋๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ.
UIKit
์ ์ ์๋์ด ์๋performSegue(withIdentifier: , sender:)
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ - ์ก์ ์ธ๊ทธ์จ์ด : ๋ฒํผ ํน์ ํ ์ด๋ธ ์ ์ ํฐ์น์ด๋ฒคํธ์ ์ฐ๊ฒฐํ์ฌ ํ๋ฉด์ ์ ํํ๋ค. ์์ค์ฝ๋๊ฐ ํ์ ์์ผ๋ฉฐ, ํธ๋ฆฌ๊ฑฐ ์ธ๊ทธ์จ์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค.
์ก์ ์ธ๊ทธ์จ์ด
- Ctrl์ ๋๋ฅธ์ฑ๋ก ๋ฒํผ๊ณผ ๋ค์ ํ๋ฉด์ ์ฐ๊ฒฐํด์ค๋ค.
- ํ์ ์ ๊ณจ๋ผ์ค๋ค.
๋ฉ๋ด์ผ ์ธ๊ทธ์จ์ด
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๊ทธ๋ฅผ ๊ตฌํํ๋ ๊ฒฝ์ฐ์ด๋ค.
๋ฉ๋ด์ผ ์ธ๊ทธ์จ์ด๋ก ํ๋ฉด์ ํ ํ๋ ๋ฐฉ๋ฒ
- ์คํ ๋ฆฌ๋ณด๋์ Scene์ ๋์ปค -> Ctrl + 3๊ฐ์ค ๊ฐ์ฅ ์ผ์ชฝ(ViewController) ๋ฒํผ ํด๋ฆญ -> ๋๋๊ทธ ํด์ ๋ค์ Scene๊ณผ ์ฐ๊ฒฐํด์ค๋ค.
- 1๋ฒ์ ๋ง์ณค์ผ๋ฉด ์ธ๊ทธ ํ์ดํ๊ฐ ์๊ธฐ๊ฒ ๋๋ค. ์ธ๊ทธ ํ์ดํ ํด๋ฆญ -> Attribute inspector์์ Segue Identifier๋ฅผ ์ ๋ ฅํด์ค๋ค.
- ํ๋ฉด ์ ํ์ด ํ์ํ ๋ถ๋ถ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค. ์๋ฅผ๋ค๋ฉด
self.performSegue(withIdentifier: "2stVC" , sender:self)
Unwind (์ด์ ํ๋ฉด์ผ๋ก ๋๋์๊ฐ๊ธฐ)
๋ค๋น๊ฒ์ด์
์ปจํธ๋กค๋ฌ์์ ํ๋ฉด ๋ณต๊ท๋ popViewController
๋ฉ์๋๋ฅผ, ๊ทธ๋ฆฌ๊ณ ํ๋ ์ ํ
์ด์
๋ฐฉ์์์๋ dismiss
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ํ๋ฉด์ผ๋ก ๋๋์๊ฐ๋ค.
- ์ธ๊ทธ์จ์ด์์ ์ด์ ํ๋ฉด์ผ๋ก ๋๋์๊ฐ๋ ค๋ฉด, ๋์๊ฐ๋ ค๋ ViewController์ ์ก์ ๋ฉ์๋๋ฅผ ์์ฑํ๋ค. ์ฝ๋๋ง ์์ฑํด์ฃผ๋ฉด ๋๊ณ , ๋ฐ๋ก Outlet์ฐ๊ฒฐ์ ํ์ ์๋ค.
//ํ๋ฉด 2์ ViewController์ ์์ฑ
@IBAction func backToPage2(_ sender: UIStoryboardSegue) {
print("2๋ฒ ํ๋ฉด์ผ๋ก ์ด๋ํฉ๋๋ค.")
}
- Ctrl์ ๋๋ฅธ์ฑ ๋์ปค์ Exit๊ณผ ๋ฒํผ์ ์ฐ๊ฒฐํด์ค๋ค.
- ์ฐ๊ฒฐํ๋ฉด ์์ฑํ ์ก์ ๋ฉ์๋๋ค์ ์ธ์ํด์ ๋ชฉ๋ก์ ๊ฐ์ ธ์์ค๋ค. ์ฌ๊ธฐ์ ์ํ๋ ๋ฉ์๋๋ฅผ ์ ํํด์ฃผ๋ฉด ๋๋ค.
๋ฐ๋ก ์ด์ ํ๋ฉด์ด ์๋, 3๋จ๊ณ ์ด์ ํ๋ฉด์ผ๋ก๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋์๊ฐ ์ ์์ผ๋ฉฐ, ๋์๊ฐ๋ ๊ฒฝ์ฐ์ ์คํ์ ์์ฌ์๋ ๋ค๋ฅธ ํ๋ฉด๋ค์ ์๋์ผ๋ก deallocate ๋๋ค.
์ธ๊ทธ์จ์ด์ ์ ์ฒ๋ฆฌ ๋ฉ์๋
์ฝ๋๋ก ํ๋ฉด์ ํ์ ๊ตฌ์ฑํ๋ค๋ฉด ์ ํ ๊ณผ์ ์ ์ง์ ์ ์ดํ ์ ์์ง๋ง, ์ธ๊ทธ์จ์ด๋ฅผ ์ด์ฉํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ ์ดํ ์ ์๋ ์์ ๋๊ฐ ์ ํ๋๋ค. ์ธ๊ทธ์จ์ด๊ฐ ์คํ๋๊ธฐ ์ ์ ์ฝ์ฝ์ ํฐ์น ํ๋ ์์ํฌ์์ ํน์ ๋ฉ์๋๋ฅผ ์๋์ ์ผ๋ก ํธ์ถํ๊ฒ ๋๋๋ฐ, ์ด๋ฅผ ์ด์ฉํ๋ฉด ์ ํ๋ ์์ ๋๋ฅผ ๊ทน๋ณตํ ์ ์๋ค.
๊ฐ์ ๋ค์ํ๋ฉด์ผ๋ก ์ ๋ฌํ ๋๋ ์ฌ์ฉ๋๋ ๋ฉ์๋์ด๋ค.
prepare(for segue: UIStoryboardSegue, sender : Any?){...}
์ด ๋ฉ์๋๋ ์์คํ
์์ ์๋์ผ๋ก ํธ์ถ๋๋ ๋ฉ์๋์ด๊ธฐ ๋๋ฌธ์ override
ํด์ ์ฌ์ฉํ๋ฉด ๋๋ค.
override func prepare(for segue: UIStoryboardSegue, sender: Any?){
print("์ธ๊ทธ์จ์ด๊ฐ ๊ณง ์คํ๋ ์์ ")
}
'๐ฑ iOS > -- UIKit' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(iOS) UIControl - Picker View (0) | 2021.06.02 |
---|---|
(iOS) UIControl - Button (0) | 2021.06.02 |
(iOS) UIControl ๊ณตํต ๊ฐ๋ - Target Action , selector (0) | 2021.06.01 |
(iOS) ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด (Delegate Pattern , tableView , TextField, ํ๋ฉด๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ) (0) | 2021.05.21 |
[IOS] X Code์์์ UI ๊ตฌ์ฑ ๋ฐฉ๋ฒ, @IBOutlet ๊ณผ @IBAction , ์ปจํธ๋กค ์ด๋ฒคํธ์ ์ข ๋ฅ (0) | 2021.04.20 |
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
-
(iOS) UIControl - Button 2021.06.02
-
(iOS) UIControl ๊ณตํต ๊ฐ๋ - Target Action , selector 2021.06.01
-
(iOS) ๋ธ๋ฆฌ๊ฒ์ดํธ ํจํด (Delegate Pattern , tableView , TextField, ํ๋ฉด๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ) 2021.05.21
-
[IOS] X Code์์์ UI ๊ตฌ์ฑ ๋ฐฉ๋ฒ, @IBOutlet ๊ณผ @IBAction , ์ปจํธ๋กค ์ด๋ฒคํธ์ ์ข ๋ฅ 2021.04.20
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค