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 回答