【问题标题】:How do I pop a TTPhotoViewController?如何弹出 TTPhotoViewController?
【发布时间】:2010-07-15 21:47:46
【问题描述】:

我一直在尝试从three20 弹出一个TTPhotoViewController。起初它没有后退按钮,但我现在实现了它并尝试弹出视图但没有运气。这是我的代码的 sn-p:

按钮(有效)--

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

它已经添加了一个后退按钮,但可惜这段代码也没有向我的导航栏添加一个按钮。

【问题讨论】:

    标签: iphone three20 objective-c ttphotoviewcontroller


    【解决方案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(仅在使用自定义后退按钮时才使用)。

    有关更多信息,请阅读this document 的“更新导航栏”部分

    【讨论】:

    • 感谢您的回复。我试过了,但似乎没有用。我已经更新了我的问题以包含更多详细信息。
    • 你是继承自TTNavigator还是继承自你自己的导航?你是对的,它没有在那里添加后退按钮(我只是尝试注释掉所有代码,它仍然从某个地方获得后退按钮)。但是,当我在代码中搜索BarButtonItem 时,我找不到其他任何地方。我不确定他是如何添加这些的。
    • 在我的项目中,我使用了Catalog 示例中的MockPhotoSourcePhotoTest1Controller,它会自动为我创建后退按钮(并弹出视图)。他可能只是让它继承自 Apple 的导航类,因为我可以使用上面的代码更改后退按钮文本。
    • 我在我的项目中尝试了你的代码,它在我的照片视图控制器的viewDidLoad 方法中运行良好。我在popView 方法中放置了一个 NSLog,以确保它被调用并且确实被调用了
    • 谢谢,我的也被调用了,只是没有弹出视图控制器....我将尝试目录示例并告诉你。
    【解决方案2】:

    在推送 TTPhotoViewController 之前添加此代码。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      相关资源
      最近更新 更多