๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•
[iOS/UI] ์ฝ”๋“œ๋กœ width, height,x์ถ•,y์ถ• center ์ง€์ •ํ•˜๊ธฐ(Autolayout Programatically) ์Šคํ† ๋ฆฌ๋ณด๋“œ์ƒ์—์„œ ๋ง๊ณ  ์ฝ”๋“œ๋กœ ํŠน์ • ๋ทฐ๋ฅผ ์ค‘์•™์— ๋ฐฐ์น˜ํ•˜๊ฑฐ๋‚˜ ๊ฐ€๋กœ,์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์ •ํ•ด์ฃผ๊ณ  ์‹ถ์—ˆ๋‹ค. ๋ฐฉ๋ฒ•์€ ์•„์ฃผ ๊ฐ„๋‹จํ–ˆ๋‹ค. ์šฐ์„  ์Šคํ† ๋ฆฌ๋ณด๋“œ์ƒ์— ๊ฒ€์ •๋ทฐ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ์•„๋ฌด contraints๋ฅผ ๊ฑธ์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์Šคํ† ๋ฆฌ๋ณด๋“œ์ƒ์— ๋งŒ๋“ค์—ˆ๋˜ ๋ทฐ ๊ทธ๋Œ€๋กœ ๋ชจ์–‘์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ƒ์— ๋‚˜์˜จ๋‹ค. ๊ฐ€์žฅ ํ•ต์‹ฌ์€ translatesAutoresizingMaskIntoConstarainsts๋ฅผ false๋กœ ํ•ด์•ผ ์ž๋™์œผ๋กœ ๋ฆฌ์‚ฌ์ด์ง•๋˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค. ์ด ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์ ์šฉ์ด ์•ˆ๋œ๋‹ค. //๋ทฐ๋ฅผ ์ž๋™์œผ๋กœ ๋ฆฌ์‚ฌ์ด์ง• ํ•˜์ง€๋งˆ! BlackView.translatesAutoresizingMaskIntoConstraints = false //๊ฐ€๋กœํฌ๊ธฐ๋ฅผ 50 BlackView.widthAnchor.constraint(equalToCon.. 2020. 1. 6.
[iOS/UI] ๊ฐ€๋กœ๋ชจ๋“œ ๋ง‰๊ธฐ(UIInterfaceOrientationMask.portrait) ๊ฐ€๋กœ๋ชจ๋“œ๋ฅผ ๋ง‰๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ์•ฑ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ์— shouldSupporAllOrientation์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  supportedInterfaceOrientationFor ํ•จ์ˆ˜์— ๋ณ€์ˆ˜๊ฐ€ true๋ฉด ๋ชจ๋“  ๋ฐฉํ–ฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  false๋ฉด ์„ธ๋กœ๋ชจ๋“œ๋งŒ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ผ๋ผ๊ณ  ์„ค์ •ํ•ด์ค€ ๋’ค ๊ฐ€๋กœ๋ชจ๋“œ๋ฅผ ๋ง‰๊ณ ์‹ถ์€ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์— AppDelegate๋ฅผ ๋Œ€์‹ ํ•  ์ƒ์ˆ˜๋ฅผ ๋งŒ๋“ค์ฃผ๊ณ  viewDidLoad()์— appdelegate์— ์•„๊นŒ ๋งŒ๋“ค์–ด๋†จ๋˜ ๋ณ€์ˆ˜ shouldSupportAllOrientation๋ฅผ false๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค. ์•„๋ž˜ ์™ผ์ชฝ์€ ๊ฐ€๋กœ๋ชจ๋“œ๋ฅผ ๋ง‰๊ธฐ ์ „์ด๊ณ  ์˜ค๋ฅธ์ชฝ์€ ์ ์šฉํ•œ ํ›„์˜ ๋ชจ์Šต์ด๋‹ค. 2020. 1. 5.
[iOS] ์ฒ˜์Œ ํ™”๋ฉด ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์„ค์ •ํ•˜๊ธฐ(Set InstantiateViewController) ์•ฑ ์‹คํ–‰ ์‹œ ์ฒ˜์Œ ํ™”๋ฉด์„ ์›ํ•˜๋Š” ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋„์šฐ๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์‹œ์ž‘ํ™”๋ฉด์„ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค. class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { var initialViewController: UIViewController? let mainStoryboard : UIStoryboard = UIStoryboard(nam.. 2020. 1. 4.
[iOS] ์ฝ”๋“œ๋กœ ์›ํ•˜๋Š” ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ด๋™ํ•˜๊ธฐ(Programmatically transition UIViewController) ์Šคํ† ๋ฆฌ๋ณด๋“œ์—†์ด ์–ด๋–ค ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋‹ค๋ฅธ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด๋™ํ•˜๊ณ ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋ง์„ ํ•ด์„œ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ ์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ ์‹œ์ž‘๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ Idenftifier๋ฅผ ์ด์šฉํ•ด์„œ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. //ํ˜„์žฌ ์Šคํ† ๋ฆฌ๋ณด๋“œ์— ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ StoryboardID๊ฐ€ "Arrive"์ธ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ณด์—ฌ์ค˜ let view = self.storyboard?.instantiateViewController(withIdentifier: "Arrive") //์ด๋™ํ•  ๋•Œ ํ™”๋ฉด coverVertical๋กœ ๋ณด์—ฌ์ค˜ view?.modalTransitionStyle = UIModalTransitionStyle.coverVertical //view๋ฅผ ๋ณด์—ฌ์ค˜! self.present(view!, animated: true, completion: nil) .. 2020. 1. 3.
[ํ•ด๊ฒฐ๋ฒ• ํฌํ•จ]๋Ÿฐ์น˜์Šคํฌ๋ฆฐ ๊ฒ€์ •์ƒ‰์ด๋ฏธ์ง€ ์—๋Ÿฌ(LaunchScreen BlackImage Error) ์•ฑ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์ž๊พธ ๋Ÿฐ์น˜์Šคํฌ๋ฆฐ์ด ๊ฒ€์ •์ƒ‰ ํ™”๋ฉด์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ๋‹ค. ๋ฉฐ์น  ๊ฐ„์„ ๋ชป ํ’€์—ˆ๋Š”๋ฐ ์ •๋‹ต์„ ์•Œ์•„๋ƒˆ๋‹ค. ์˜ˆ์ „์— ๋‚ด๊ฐ€ ๋Ÿฐ์น˜์Šคํฌ๋ฆฐ์„ ์ง์ ‘ ์ฝ”๋“œ๋กœ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์•„์›ƒ๋ ›์„ ์—ฐ๊ฒฐํ–ˆ์—ˆ๋Š”๋ฐ ์ด๊ฒƒ์„ ํ’€์–ด์ค˜์•ผ ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค!! ๊ทธ๋ฆฌ๊ณ  ๋˜ ์•„๋ž˜ ํ™”๋ฉด๊ณผ ๊ฐ™์ด ์ด๋ฏธ์ง€๊ฐ€ ๊ฒ€์ •์ƒ‰์œผ๋กœ ๋ณด์ด๋Š” ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚ฌ๋Š”๋ฐ ์ด๊ฑด logo.png์™€ ๊ฐ™์ด ํŒŒ์ผํ™•์žฅ์ž๋ฅผ ์จ์ฃผ๋ฉด ์•ˆ๋œ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์ด๋ฆ„๋งŒ ์จ์ค˜์•ผ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™๋œ๋‹ค. ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™๋˜๋Š” ๋ชจ์Šต 2020. 1. 2.
[iOS/UI] ํƒญ๋ฐ” ๊ธธ์ด ์กฐ์ • ๋ฐ ์•„์ดํ…œ ์œ„์น˜ ๋ฐฐ์—ด(UITabBar height & UITabBar item image insets) ์•„๋ž˜์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉด ๋‚ด ๊ธฐ์ค€์—์„  ํƒญ๋ฐ” ์•„์ดํ…œ๋“ค์ด ์‚ด์ง ์œ„๋กœ ๊ฐ€์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋‹ค๊ฐ€ ์• ํ”Œ๋ฌธ์„œ์—์„œ ์•„๋ž˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์ด๋ฏธ์ง€ ์ธ์…‹์ด๋ผ๋Š” ๊ฑด๋ฐ ๊ฐ ๊ผญ์ง€์ ๋“ค์„ ์ง€์ •ํ•ด ์œ„์น˜๋ฅผ ์žฌ๋ฐฐ์—ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์šฐ์„  ์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์— ํƒญ๋ฐ”์•„์ดํ…œ ์œ„์น˜๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์„ ํด๋ฆญํ•˜๊ณ  ์ธ์ŠคํŽ™ํ„ฐ๋ฅผ ์—ด๋ฉด 6๋ฒˆ์งธ size ์ธ์ŠคํŽ™ํ„ฐ์— image inset์ด ์žˆ๋‹ค. ๋ชจ๋‘ 0์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค. ๋‚œ ์•„์ดํ…œ๋“ค์„ ๋‚ด๋ ค์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”ํ…€์— -20๊ฐ’์„ ์ค˜๋ณด์•˜๋‹ค. ๊ทธ๋žฌ๋”๋‹ˆ ์ž˜ ์•ˆ๋ณด์ผ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์•„๋ž˜๋กœ ์•ฝ๊ฐ„ ์ด๋™ํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค! ๊ทธ๋ฆฌ๊ณ  ๋˜ ์•„์ดํ…œ์„ ๋‚ด๋ฆฌ๊ธฐ๋ณด๋‹จ ํƒญ๋ฐ” ๋†’์ด๋ฅผ ์ค„์ด๋ฉด ๋˜์ง€ ์•Š์„๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์— ํƒญ๋ฐ” ํ—ค์ดํŠธ๋ฅผ ์กฐ์ •ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ฐพ๊ฒŒ ๋˜์—ˆ๊ณ  ์‰ฝ๊ฒŒ ์›ํ•˜๋Š” ๊ธธ์ด๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ex.. 2019. 12. 29.
[iOS/UI] UICollectionView ์Šคํฌ๋กคํ•˜๋ฉด ์„œ์น˜๋ฐ” ์ˆจ๊ธฐ๊ธฐ ์ฝœ๋ ‰์…˜๋ทฐ๋ฅผ ์Šคํฌ๋กคํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„๋‚ด๋Š” ๊ฑด scrollViewDidScroll์ด๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์“ฐ๋ฉด ์•Œ ์ˆ˜ ์žˆ๋‹ค. //์ฝœ๋ ‰์…˜๋ทฐ์˜ ํ•˜์œ„ํด๋ž˜์Šค๊ฐ€ ์Šคํฌ๋กค๋ทฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฝœ๋ ‰์…˜๋ทฐ ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค. func scrollViewDidScroll(_ scrollView: UIScrollView) { let actualPosition = scrollView.panGestureRecognizer.translation(in: scrollView.superview) //์Šคํฌ๋กค ์•„๋ž˜์ธ์ง€ ์œ„์ธ์ง€ ์•Œ์•„๋‚ด๋Š” ํฌ์ง€์…˜ if (actualPosition.y > 0){ // ์•„๋ž˜๋กœ ๋‚ด๋ฆฐ ๊ฒƒ searchheight.constant = 38 //searchbarheight๋ฅผ 38๋กœ ๋ฐ”๊ฟˆ UIView.animate(.. 2019. 12. 26.
[iOS/UI]UICollectionView header๋งŒ๋“ค๊ธฐ(UICollectionReusableView) ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ํ•ด๋‹น ์ฝœ๋ ‰์…˜๋ทฐ์— CollectionReusableView๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€ ๋’ค UICollectionReusableView ํŒŒ์ผ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. CollectionReusableView ํด๋ž˜์Šค์— ์ƒ์„ฑํ•ด์ค€ ํŒŒ์ผ ์ด๋ฆ„์„ ์ ๊ณ  identifier์˜ ์ด๋ฆ„์„ ๋”ฐ๋กœ ์ƒ์„ฑํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฝœ๋ ‰์…˜๋ทฐ๊ฐ€ ์žˆ๋Š” ํด๋ž™์Šค์— ์•„๋ž˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋! func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { //ofKind์— UICollectionView.elementKindSectionHea.. 2019. 12. 26.
[iOS/UI] UIButton ์œ„์—๋งŒ ๋‘ฅ๊ธ€๊ฒŒ ํ•˜๊ธฐ //์ต์Šคํ…์…˜์„ ์„ค์ •ํ•ด์ฃผ๊ณ  extension UIButton { func roundedButton(){ clipsToBounds = true //๋ทฐ์˜ ํ…Œ๋‘๋ฆฌ ๊ธฐ์ค€์œผ๋กœ ์งค๋ฆฌ๊ฒŒ ๋œ๋‹ค. layer.cornerRadius = 10 //์–ผ๋งŒํผ ๋‘ฅ๊ธ€๊ฒŒ layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] //์ œ์ผ ์™ผ์ชฝ์œ„์—์„œ ์ œ์ผ ์˜ค๋ฅธ์ชฝ ์œ„๊นŒ์ง€ ๋‘ฅ๊ธ€๊ฒŒ // ์•„๋ž˜๋Š” ๋ฒ„ํŠผ์˜ ๋ณด๋”๋ฅผ ์ •ํ•ด์ฃผ๋Š”๊ฒƒ // layer.borderWidth = 1 // layer.borderColor = UIColor(displayP3Red: 211/255, green: 211/255, blue: 211/255, alpha: 1).cgColor } } override func view.. 2019. 12. 26.
[iOS/API] Google Places Autocomplete API(์ฃผ์†Œ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ ์ด์šฉํ•˜๊ธฐ) ๋จผ์ €, ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐ˜๋“œ์‹œ ๊ฒฐ์ œ๊ณ„์ •์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ–ˆ๋‹ค. ์•ˆ๊ทธ๋Ÿฌ๋ฉด ๊ฒ€์ƒ‰์„ ํ–ˆ์„ ๋•Œ ์•„๋ž˜ํ™”๋ฉด์ฒ˜๋Ÿผ ๋–  ๊ฒ€์ƒ‰์„ ์ œํ•œํ–ˆ๋‹ค. ๊ฒฐ์ œ๊ณ„์ •์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฒ• ์™ผ์ชฝ ์ƒ๋‹จ์— ํ–„๋ฒ„๊ฑฐ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  ๊ฒฐ์ œ๋ถ€๋ถ„์„ ํด๋ฆญํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฌ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ์ œ ๊ณ„์ • ์—ฐ๊ฒฐ์„ ํ•ด์ค€ ๋’ค ๋‹ค์‹œ ํ–„๋ฒ„๊ฑฐ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ณ  API ๋ฐ ์„œ๋น„์Šค์˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๋“ค์–ด๊ฐ€์„œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ๋ฅผ ๋ˆ„๋ฅด๊ณ  API ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. API ํ‚ค๋Š” ๋‚˜์ค‘์— ์„ค์ •ํ•  ๋•Œ ์“ฐ์ด๋‹ˆ ์ž˜ ์ ์–ด๋‘”๋‹ค. ์ €๋ ‡๊ฒŒ ๋…ธ๋ž€ ๋Š๋‚Œํ‘œ ๋ชจ์–‘์ด ๋œจ๋Š” ๊ฑด ์ œํ•œ ์„ค์ •์„ ํ•ด์ฃผ๋ผ๋Š” ๋œป์ด๋‹ค. ๋…ธ๋ž€์ƒ‰ ๋Š๋‚Œํ‘œ๋ชจ์–‘์„ ํด๋ฆญํ•˜๋ฉด ์„ค์ • ์ˆ˜์ •์ด ๋œจ๋Š”๋ฐ ๊ฑฐ๊ธธ ๋“ค์–ด๊ฐ€์„œ iOS์•ฑ , ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฒˆ๋“ค ID, ํ‚ค ์ œํ•œ ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” API (์ง€๊ธˆ์€ Pl.. 2019. 12. 19.
[ํ•ด๊ฒฐ๋ฒ• ํฌํ•จ] Mac ์—…๋ฐ์ดํŠธ ํ›„ ์ฝ”์ฝ”์•„ํŒŸ ์˜ค๋ฅ˜ MacOS๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์ƒˆ๋กœ์šด ํŒŸํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ ๊ฐ‘์ž๊ธฐ ํ„ฐ๋ฏธ๋„์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. pod install zsh: /usr/local/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: no such file or directory ์—ด์‹ฌํžˆ ๊ตฌ๊ธ€๋งํ•ด์„œ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ sudo gem install cocoapods๋ช…๋ น์–ด๋ฅผ ์ณ์ค€ ๋’ค ๋‹ค์‹œ pod install์„ ํ•ด์ฃผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค! 2019. 12. 18.
[iOS] NotificationCenter ๋™์‹œ์— ๋‹ค๋ฅธ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ๊ด€๋ฆฌํ•˜๊ธฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋‹ค ๋ณด๋ฉด ํŠน์ • ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์–ด๋–ค ํ–‰๋™์„ ํ–ˆ์„ ์‹œ ๋™์‹œ์— ๋‹ค๋ฅธ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ณ€ํ™”ํ•˜๊ฒŒ ํ•˜๊ณ ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ ์ด ๋•Œ ์œ ์šฉํ•œ๊ฒŒ ๋ฐ”๋กœ NotificationCenter์ด๋‹ค. ๊ฐ’์„ ๋ณด๋‚ด์•ผํ•  ํด๋ž˜์Šค์—์„œ ๋…ธํ‹ฐํ”ผ์ผ€์ด์…˜ ์ด๋ฆ„์„ ์ •ํ•ด์ฃผ๊ณ  NotificationCenter.default.post(name: NSNotification.Name("Notification"), object: nil) ๊ฐ’์„ ๋ฐ›์•„์•ผํ•  ํด๋ž˜์Šค์— ์—๋“œ์˜ต์ €๋ฒ„๋ฅผ ์ ์–ด์ฃผ๊ณ  ์›ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์…€๋ ‰ํ„ฐ๋ฅผ ์ ์–ด์ค€ ๋‹ค์Œ ๊ฐ’์„ ๋ณด๋ƒˆ๋˜ ๋…ธํ‹ฐํ”ผ์ผ€์ด์…˜ ์ด๋ฆ„์„ ์ ์–ด์ค€๋‹ค, NotificationCenter.default.addObserver(self, selector: #selector(SearchExchangeTag.notifiactionFired(_:)).. 2019. 12. 14.
728x90
๋ฐ˜์‘ํ˜•