728x90
๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
๋ฌธ์
๋์ ํ๋ฉด์ '๋ฉ์ธํ๋ฉด'๊ณผ '์์ ํ๋ฉด' ๋ ๊ฐ๋ก ๋ง๋ ๋ค. ๋ํ '๋ฉ์ธํ๋ฉด'์์ '์์ ํ๋ฉด'์ผ๋ก, '์์ ํ๋ฉด'์์ '๋ฉ์ธํ๋ฉด'์ผ๋ก ๋ฉ์์ง(๋ฐ์ดํฐ)๋ฅผ ์ ๋ฌํ ์ ์๊ฒ ํ๊ณ ์ด๋ฏธ์ง์ ํ๋/์ถ์ ์ํ๋ฅผ '์์ ํ๋ฉด'์์ ์ ์ดํ ์ ์๋๋ก ํ๋ค.
๊ตฌํ ์์
- ๋ด๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ ์ถ๊ฐ
- '๋ฉ์ธํ๋ฉด' ๋ ์ด์์ ๊ตฌ์ฑ
- '์์ ํ๋ฉด' ์ถ๊ฐ ๋ฐ ๋ ์ด์์ ๊ตฌ์ฑ
- ๋ฐ ๋ฒํผ์ผ๋ก ํ๋ฉด ์ ํ๋๋๋ก ๊ตฌํ
- ๋ทฐ ์ ํ๊ณผ ํจ๊ป ๋ฉ์์ง ์ ๋ฌํ๊ธฐ
- '์์ ํ๋ฉด'์์ '๋ฉ์ธํ๋ฉด'์ ์ด๋ฏธ์ง ์ ์ดํ๊ธฐ
์ต์ข ๊ฒฐ๊ณผ
1. ๋ด๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ ์ถ๊ฐ
๋ด๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ถ๊ฐํ ๋ทฐ ํด๋ฆญ ํ [Editor/Embed in/Navigation Controller]๋ฅผ ์ ํํ์ฌ ๋ด๋น๊ฒ์ด์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ถ๊ฐํ๋ค.
2. '๋ฉ์ธํ๋ฉด' ๋ ์ด์์ ๊ตฌ์ฑ
- ์ค๋ฅธ์ชฝ ๋ทฐ์ bar๋ฅผ ํด๋ฆญํ์ฌ Title์ '๋ฉ์ธํ๋ฉด'์ผ๋ก ์ง์ ํ๋ค.
- bar์ 'Bar Button Item'์ ์ถ๊ฐํ ๋ค Bar Button Item์ System Item์ 'Edit'์ผ๋ก ์์ ํ๋ค.
- Lable์ ์ถ๊ฐํ์ฌ '๋ฉ์์ง'๋ก ์์ ํ๋ค.
- Lable ์๋์ Text Field๋ฅผ ์ถ๊ฐํ๋ค
- Image View์ ์ถ๊ฐํ ํ image์ ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ํ ๋นํ๋ค.
3. '์์ ํ๋ฉด' ์ถ๊ฐ ๋ฐ ๋ ์ด์์ ๊ตฌ์ฑ
- ์คํ ๋ฆฌ ๋ณด๋์ ์๋ก์ด ViewController๋ฅผ ์ถ๊ฐํ๋ค.
- ํ๋ก์ ํธ์ ์ ํ์ผ๋ก Cocoa Touch Class๋ฅผ ์ถ๊ฐํ ํ, ์๋กญ๊ฒ ์ถ๊ฐํ ViewController์ class๋ก ์ง์ ํ๋ค.
์ฝ์ฝ์ ํฐ์น ํด๋์ค Cocoa Tuch Class
์ฝ์ฝ์(Cocoa)๋ ์ ํ ํ๊ฒฝ์์ ๋งฅ์ด๋ iOS์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ธฐ ์ํ ๋๊ตฌ๋ค์ ๋ชจ์์ด๋ค. ๋ณดํต UI ๊ธฐ๋ฅ๋ค์ ๋ง์ด ์ฌ์ฉํ๊ณ ์๋ค. ๊ทธ๋ฐ๋ฐ ๋งฅ๊ณผ ๋ค๋ฅด๊ฒ iOS์ ๊ฒฝ์ฐ ํฐ์น์ ๊ด๋ จ๋ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋์๋๋ฐ ์ด๋ฅผ ์ง์ํ๊ธฐ ์ํ ๋๊ตฌ๋ค์ ๋ชจ์์ด ์ฝ์ฝ์ ํฐ์น(Cocoa Tuch)์ด๋ค. ๊ทธ๋ฆฌ๊ณ UI๋ฅผ iOS์ฉ์ผ๋ก ๋ณ๊ฒฝํ๊ณ ๋ค์ํ ํฐ์น ๊ด๋ จ ๊ธฐ๋ฅ์ ํด๋์ค๋ก ๋ง๋ค์ด ๋์ ๊ฒ์ด ์ฝ์ฝ์ ํฐ์น ํด๋์ค(Cocoa Tuch Class)์ด๋ค. ๋ทฐ ์ปจํธ๋กค๋ฌ์ ๊ดํ ํด๋์ค๋ ์ด ์ฝ์ฝ์ ํฐ์น ํด๋์ค์ ์๋ค.
๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด iOS๋ฅผ ์ํ UI Framework์ด๋ค. Cocoa Tuch Framework์๋ UIKit, Foundation, CoreData, MapKit, CoreAnimation ๋ฑ์ด ์๋ค.
๋์ค์ ์์ธํ ๊ณต๋ถํ๋๋ก ํ์.
- ์ ViewController์ Title์ '์์ ํ๋ฉด'์ผ๋ก ์์ ํ๋ค.
- '๋ฉ์ธํ๋ฉด'์ Bar Button Item์ธ 'Edit'์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ์ฌ '์์ ํ๋ฉด'์ผ๋ก ๋๋๊ทธํ๋ค. ๊ทธ๋ฆฌ๊ณ Action Segue์ Show๋ก ์ค์ ํ๋ค.
Segue (์ธ๊ทธ์จ์ด) : (ํ ๊ฐ์ง ๋ ธ๋·์ฃผ์ ·์ฅ์ ๋ฑ์์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ถ๋๋ฝ๊ฒ) ๋์ด๊ฐ๋ค[์ด์ด์ง๋ค] - ์ฅ์คํผ๋ ์ํ์ฌ์ ์ฆ, ์ฑ์์๋ ํ๋ฉด ์ ํ์ ๋ปํ๋ค. |
|
Segue ์ข ๋ฅ | ์ค๋ช |
Show | ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ Segue. ์ ํ๋ฉด์ผ๋ก ์ด๋ํ๋ค. stack ๊ตฌ์กฐ๋ก, ์๋ ํ๋ฉด ์์ ์ ํ๋ฉด์ด ์์ธ๋ค.![]() |
Show Detail | split View ๊ตฌ์กฐ์์ ์๋ ํ๋ฉด์ Master, ์ํ๋ฉด์ Detail๋ก ํ์ํ๋ค. ์์ดํฐ์์๋ Present Modally์ ๋๊ฐ์ ๋ณด์ด์ง๋ง ์์ดํจ๋์์๋ ํ๋ฉด์ด ๋๋ก ๋ถํ ๋์ด ๋ณด์ธ๋ค. |
Present Modally | ์ ํ๋ฉด์ด ์๋ ํ๋ฉด ์๋ฅผ ๋ฎ๋๋ค. ์๋ ํ๋ฉด์ ์ ํ๋ฉด ๋ค์ ๊ทธ๋๋ก ์กด์ฌํ๋ค.![]() |
Presentation as Popover | ์์ดํจ๋์์ ํ์ ์ฐฝ์ ๋์ด๋ค. ์์ดํฐ ์ฑ์์๋ Show Detail๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํฐ ์๋ฏธ๊ฐ ์๋ค. |
- Navigation Bar์์ ์ํ๋ Bar ์์๊ณผ Title ์์ ์ค์ ํ๋ค. Segue๋ฅผ Show๋ก ์ง์ ํ์ ์ ๋จ๋ ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ์ ์์ Bar์ Title ์์ ์ง์ ํ ๊ณณ์ View/Tint๋ฅผ ํตํด ์ค์ ํ ์ ์๋ค.
- ์คํ ๋ฆฌ๋ณด๋ ์ค์์ ์๋ Segue(์ธ๊ทธ์จ์ด)๋ฅผ ํด๋ฆญํ์ฌ Identifier์ 'editBarButton'์ผ๋ก ์์ ํ๋ค. (๋ง์ฝ ๊ฐ์ ํ๋ฉด์ผ๋ก ์ ํํ๋ ์ธ๊ทธ์จ์ด๊ฐ ๋ง์ ๊ฒฝ์ฐ, ๋ทฐ ์ ํ ๋ฐฉ๋ฒ์ ๊ตฌ๋ถํ๋ ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ค. ์ง๊ธ ๋ฌธ์ ์์๋ Id๋ฅผ ์ฌ์ฉํ์ง๋ ์์ ๊ฒ ๊ฐ๋ค.)
- '๋ฉ์ธํ๋ฉด'๊ณผ ๋์ผํ๊ฒ '๋ฉ์ธ์ง' Lable๊ณผ Text Field๋ฅผ ์ถ๊ฐํ๋ค. ๊ทธ๋ฆฌ๊ณ '์์ ํ๋ฉด'์์ '๋ฉ์ธํ๋ฉด'์ผ๋ก ๋์ด๊ฐ '์๋ฃ' ๋ฒํผ์ ์ถ๊ฐํ๋ค.
- '์์ ํ๋ฉด'์์ '๋ฉ์ธํ๋ฉด'์ ์ด๋ฏธ์ง๋ฅผ ์ ์ดํ๊ธฐ ์ํด์ switch๋ฅผ ์ถ๊ฐํ๋ค. switch์ ์ํ๋ฅผ ๋ณด์ฌ์ค Lable๋ ์ถ๊ฐํ๋ค.
'์์ ํ๋ฉด' ์์ฑ๋ณธ
๊ณต๋ถ ์๋ฃ
https://m.blog.naver.com/jdub7138/220393890771
ํ๋ฉด์ด๋ - Segue
https://stackoverflow.com/questions/28733936/change-color-of-back-button-in-navigation-bar
Change color of Back button in navigation bar
https://seoyoung612.tistory.com/entry/iOS-Cocoa-Cocoa-TouchFoundation-UIKit-๊ฐ๋ -์์๋ณด๊ธฐ
https://coding-sojin2.tistory.com/entry/Cocoa-Touch-ํ๋ ์์ํฌ
CocoaTuch
Do It! ์ค์ํํธ๋ก ์์ดํฐ ์ฑ ๋ง๋ค๊ธฐ ๊ฐ์ 5ํ
728x90