Как мне вставить TTPhotoViewController?
Я застрял, пытаясь вытащить TTPhotoViewController из трех20. Сначала он не был снабжен кнопкой "Назад", но теперь я его реализовал и безуспешно пытался выскочить. Вот фрагмент моего кода:
Кнопка (это работает) -
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:TTLocalizedString(@"Back", @"Back to Albums") style:UIBarButtonItemStyleBordered target:self action:@selector(popView)];
-popView (метод вызывается, но оператор НЕ работает) -
- (void) popView {
[self.navigationController popViewControllerAnimated:NO];
}
Спасибо
ОБНОВЛЕНИЕ 0 -
Это код, который ttphotoviewcontroller имел в своей инициализации (я проверил, что программа запускает это) -
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
self.navigationItem.backBarButtonItem =
[[[UIBarButtonItem alloc]
initWithTitle:
TTLocalizedString(@"Photo",
@"Title for back button that returns to photo browser")
style: UIBarButtonItemStylePlain
target: nil
action: nil] autorelease];
self.statusBarStyle = UIStatusBarStyleBlackTranslucent;
self.navigationBarStyle = UIBarStyleBlackTranslucent;
self.navigationBarTintColor = nil;
self.wantsFullScreenLayout = YES;
self.hidesBottomBarWhenPushed = YES;
self.defaultImage = TTIMAGE(@"bundle://Three20.bundle/images/photoDefault.png");
}
return self;
}
Уже добавлялась кнопка возврата, но, увы, этот код также не добавляет кнопку в мою панель навигации.
2 ответа
Если вы делаете что-то похожее на то, что он сделал в Catalog
Например, вы просто добавляете это в контроллер корневого представления (т.е. НЕ в представлении, которое появится после того, как оно будет помещено в стек, а в родительское представление).
Это действие ничем не отличается от обычных действий iPhone UINavigationController.
- (id)init {
if (self = [super init]) {
// setup back button for nav controller
self.navigationItem.backBarButtonItem =
[[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered
target:nil action:nil] autorelease];
}
}
Когда новый вид помещается в стек, он использует эту кнопку возврата для возврата. Вам не нужно вызывать popView или что-то еще. Обратите внимание, я использую backBarButtonItem
в то время как вы используете leftBarButtonItem
(который вы используете, только если вы используете пользовательскую кнопку назад).
Для получения дополнительной информации прочитайте раздел "Обновление панели навигации" этого документа.
Прежде чем нажать TTPhotoViewController, добавьте этот код.
UIBarButtonItem *backButton=[[[UIBarButtonItem alloc] initWithTitle:@"ButtonTitle"
style:UIBarButtonItemStyleBordered
target:nil
action:nil] autorelease];
self.navigationItem.backBarButtonItem = nil;
self.navigationItem.backBarButtonItem = backButton;