>>>>>>>>>>>>>>>>>>>>>>>>>>>
위와 같이 만들고 싶다면.. 어떻게???
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
backBarButtonItem 쓰면 된다라고 하는데
backBarButtonItem 이 안먹힌다 라고 많이 한다
나도 그랬고.. 안되는게 아니라 쓰이는 방법이 다르다..
Main 에서 호출 한 Sub에서 돌아 올때
back 을 컨스텀 하게 바꾸기 위해서는
Sub 에
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *left = [[UIBarButtonItem alloc]
initWithTitle:@"my Back"
style:UIBarButtonItemStyleBordered
target:self // event 처리할 객체
action:@selector(goBackAdd:)]; // 호출할 메서드
self.navigationItem.leftBarButtonItem = left;
}
이렇게 나온다
근데 사각형이네
하지만 오각형은 안되나?
self.navigationItem.backBarButtonItem = left;
이렇게 소스를 바꿔 보았다
구글이나 맥부기에서는 되는 사람도 있고 안된다는 사람도 있고
난 안됐다
결과는 일반 백 버튼이 되거나 버튼이 없어 지는 현상이 일어났다
결론은 backBarButtonItem 은
Sub에서 만드는게 아니라
호출 대상인
Main 에서 만드는 것이다
< Source >
@implementation SubViewController
- (IBAction) goBackAdd : (id) sender{
[self.navigationController popViewControllerAnimated:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *left = [[UIBarButtonItem alloc]
initWithTitle:@"my Back"
style:UIBarButtonItemStyleBordered
target:self // event 처리할 객체
action:@selector(goBackAdd:)]; // 호출할 메서드
self.navigationItem.leftBarButtonItem = left;
}
@implementation RootViewController
- (IBAction) goBackAdd : (id) sender{
[self.navigationController popViewControllerAnimated:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *left = [[UIBarButtonItem alloc]
initWithTitle:@"my Back"
style:UIBarButtonItemStyleBordered
target:self // event 처리할 객체
action:@selector(goBackAdd:)]; // 호출할 메서드
self.navigationItem.backBarButtonItem = left;
}
소스에서 처럼
Sub의 백 버튼은 Main에서 self.navigationItem.backBarButtonItem 으로 생성 가능하다.
성공..
'프로그래밍 > iOS' 카테고리의 다른 글
GuruLinks: 아이폰 앱 76개 소스코드, 강좌, 개발 팁 링크모음 (0) | 2011.08.10 |
---|---|
Mac OS X의 터미널에서 하위 .svn 폴더 모두 삭제하기 (1) | 2011.08.03 |
UITableViewCell의 프로퍼티 외에 이것이 지원하는 프로퍼티와 메소드 (0) | 2011.07.26 |
TableView 스타일 정리 (0) | 2011.07.26 |
iOS 개발자 라이센스 비교 (0) | 2011.07.13 |