2012-03-08 7 views
3

내 질문은 다음입니다 : 인터페이스 빌더에서 UINavigationBar를 만들고 '뒤로'버튼 항목을 만들고 싶지만 버튼이 보이지 않습니다.UINavigationBar에 '뒤로'버튼이 있습니다.

나는이 코드를 사용합니다

UIBarButtonItem *myBarButtonItem = [[UIBarButtonItem alloc] init]; 
    myBarButtonItem.title = @"Back"; 
    mynavBar.backItem.backBarButtonItem = myBarButtonItem; 

mynavBar을 -이 내 함께 IBOutlet입니다.

도움 주셔서 감사합니다.

답변

5

당신은 사용할 수 있습니다 독립 실행 형 컨트롤 또는 탐색 컨트롤러와 함께 탐색 모음. 독립 실행 형 컨트롤로 탐색 모음을 사용하면 탐색 항목 (UINavigationItem 클래스의 인스턴스)을 사용하여 표시 할 단추 나 사용자 지정보기를 지정합니다.

그래서 귀하의 경우에는이 같은 것을 사용하는 것이 :

UIBarButtonItem *myBarButtonItem = [[[UIBarButtonItem alloc] init] autorelease]; 
myBarButtonItem.title = @"Back"; 

UINavigationItem *right = [[[UINavigationItem alloc] initWithTitle:@"Hello!"] autorelease]; 
right.leftBarButtonItem = myBarButtonItem; 

[mynavBar pushNavigationItem:right animated:YES]; 

당신은 비록 UINavigationViewController을 사용하여 조사 할 수 있습니다.

+0

오른쪽 항목에 대해 다음 코드를 사용합니다 - right.backBarButtonItem = myBarButtonItem. 이 작품. 이걸 바꿔주세요. 응답 주셔서 감사합니다! –

+0

코드가 어떻게 보이는지 간단하지 않지만 단순히'right.leftBarButtonItem'을'right '로 변경하면됩니다.위 예제에서 'backBarButtonItem'은 원하는 효과를 가지지 않습니다. UINavigationItem의 backBarButtonItem 속성은 item이 스택의 최상위 항목 바로 아래에있을 때 사용됩니다. 그래서 위 예제에서'right.leftBarButtonItem = myBarButtonItem' 대신'mynavBar.topItem.backBarButtonItem = myBarButtonItem; '을 추가하고 네비게이션 스택에'right'를 넣을 수 있습니다. – ihuk

2

왼쪽에 사용자 지정 단추를 사용하려면 backItem 대신 mynavBar.leftBarButtonItem을 사용하십시오. pushViewController:을 통해 다른 viewcontroller를 제시 한 후에 만 ​​backItem이 표시됩니다. (당신이 BACK 버튼을 소유 설정하지 않은 경우, 이전의 ViewController의 제목과 기본에서는 backButton가 자동으로 생성됩니다.)

// 편집 : 아마도 당신이 찾는 : Draw custom Back button on iPhone Navigation Bar

+0

덕분에 내가 이것을 사용합니다 - mynavBar.topItem.leftBarButtonItem = myBarButtonItem; 작동합니다. 하지만 우리가 navigtionbarviewcontroller back button look을 사용한다면 다른 rectangle은 아니다. 이 경우이 버튼은 둥근 사각형이지만 뒤로 버튼은 아닙니다. –

+0

원래의 뒤로 버튼의 텍스트 만 바꾸려면 예제에서와 같이 backButton을 추가해야하지만 다른 viewController를 푸시하면 처음에 나타납니다. (현재 컨트롤러 인 backButtonItem이 다른 viewcontroller가 위에있을 때 currentViewController를 나타 내기 때문에) – calimarkus

+0

시스템 호출을 사용하여 직접 backbutton-formed 버튼을 만들 수 없습니다. 아마도이 도움이 될 것입니다 : http://stackoverflow.com/questions/4260238/draw-custom-back-button-on-iphone-navigation-bar – calimarkus

1

이것이 실제로 사과가 구현되기를 원하는 방법이라고 생각합니다. UINavigationItem

이로 설정 콘센트 UINavigationBar

을 넣어

는 캐치 당신이 만든 UINavigationItem를 반환하는

재정 navigationItem 속성입니다.

그게 전부입니다.

-(UINavigationItem *) navigationItem 
{ 
    return self.navigationItem1; 
} 

당신의 navigationItem가 UINavigationBar에 여전히 경우

, 난 당신이 너무 UINavigation 바에 강한 콘센트를해야 할 필요가 있다고 생각합니다. 내가 틀렸다면 나에게 정정 해주세요.

관련 문제