ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • UIViewController의 toolbarItems가 셋팅이 안된다.
    앱등이에게 살충제를 뿌린다./일기는 일기장에 2016. 8. 13. 01:13

    <할리퀸 코스프레하지마라>

    사진출처 :http://blog.naver.com/dasol1414/220780832695



    이번 프로젝트에서 툴바를 도입했다.

    UINavigationController에는 toolbar라는 프로퍼티가 있다. 당연히 UIToolbar타입이고..


    이 toolbar는 기본적으로 hidden되어 있는데, 여러분이 만들고 있는 앱의 아무 viewController에서 viewDidLoad에 

    [Swift] self.navigationController.toolbar.hidden = false 

    [Objective-c] [self.navigationController setToolbarHidden:NO]; 


    을 쳐본다면 갑자기 생각지도 못했던 toolbar가 나타남을 볼 수 있다.

    이 Toolbar를 커스텀으로 생성하기 위해선 NavigaitonController를 만들 때 지정해줄 수 있다.

    UINavigtionController를 만들 때, 아래 생성자메소드를 사용하면 된다.

    Declaration

    SWIFT

    init(navigationBarClass navigationBarClassAnyClass?,
               toolbarClass toolbarClassAnyClass?)

    OBJECTIVE-C

    - (instancetype)initWithNavigationBarClass:(Class)navigationBarClass
                                  toolbarClass:(Class)toolbarClass

    커스텀하게 만든 Toolbar클래스를 전달해주면 된다.


    원하는 item은 viewController의 toolbarItems라는 프로퍼티에 [UIBarButtonItem]을 넣어주면 된다.



    문제는 ..

    아 toolbarItems가 nil이 아닌데도 이 toolbar가 텅빈채로 나타나는 것이다.

    항상 발생하는 것은 아니고, present/dismiss하면서 갑자기 이러는데 원인을 도저히 알 수가 없다.


    일단 구글링한 결과

    1. Objecitve-C, Swift를 섞어서 쓰는 사람이 이런 현상을 겪었다고 한다.

    2. 그리고 toolbarItems를 셋팅할 때, 난 싱글턴 객체에 items를 만들어 놓고 viewWillAppear할 때마다 필요한 items를 가져다 넣는 방식으로 진행중이었다. 코드는 아래랑 같음.

    self.toolbarItems = [MyToolbarManager.sharedInstance items];


    근데 이걸

    [self setToolbarItems:myItems animated:NO];

    이렇게 하라고 하는 글도 있었음.

    당연히 안됨.


    3. 아 모르곘다. 오늘 10시간을 투자했지만 아직도 해결못했으니까,,, 월요일에 못하겠다고 해야지..ㅎ

    4. 내겐 너무 벅찬 프로젝트..

Designed by Tistory.