Как мне вставить 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;
Другие вопросы по тегам