Как мне вставить TTPhotoViewController? - PullRequest
1 голос
/ 16 июля 2010

Я застрял, пытаясь вытолкнуть TTPhotoViewController из Three20. Сначала это не было с кнопкой возврата, но я теперь реализовал это и попытался , чтобы выскочить представление без удачи. Вот фрагмент моего кода:

Кнопка (это работает) -

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 имел в своем init (я проверил, что программа запускала это) -

- (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 ]

1 голос
/ 16 июля 2010

Если вы делаете что-то похожее на то, что он делал в примере 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 (который вы используете, только если вы используете пользовательскую кнопку возврата).

Подробнее см. В разделе «Обновление панели навигации» этого документа

0 голосов
/ 15 декабря 2010

Перед тем как нажать TTPhotoViewController, добавьте этот код.

    UIBarButtonItem *backButton=[[[UIBarButtonItem alloc] initWithTitle:@"ButtonTitle"                 
                                                                  style:UIBarButtonItemStyleBordered
                                                                 target:nil
                                                                action:nil] autorelease];

    self.navigationItem.backBarButtonItem = nil;
    self.navigationItem.backBarButtonItem = backButton;
...