1

three20からTTPhotoViewControllerをポップしようとして立ち往生しています。最初は戻るボタンが付いていませんでしたが、今では実装して、運が悪かったのでビューをポップしようとしました。これが私のコードの抜粋です:

ボタン(これは機能します)-

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;
}

すでに戻るボタンを追加していましたが、残念ながら、このコードはナビゲーションバーにボタンを追加しません。

4

2 に答える 2

1

彼が例で行ったことと同様のことをしている場合は、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てください(カスタムの戻るボタンを使用している場合にのみ使用します)。

詳細については、このドキュメントの「ナビゲーション バーの更新」セクションを参照してください。

于 2010-07-15T22:07:49.687 に答える
0

TTPhotoViewController をプッシュする前に、このコードを追加してください。

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

    self.navigationItem.backBarButtonItem = nil;
    self.navigationItem.backBarButtonItem = backButton;
于 2010-12-15T10:37:12.023 に答える