【问题标题】:How to get the method of backBarButtonItem of navigationItem?如何获取navigationItem的backBarButtonItem的方法?
【发布时间】:2014-06-20 09:07:05
【问题描述】:

当转到新页面时,我已经添加了navigationItem.backBarButtonItem,如下面的代码,但是我想添加一个Timer 来更改一些图像,然后再通过backBarButtonItem 返回第一个。

    UIViewController *ReconnectView = [[AITReconnectView alloc] initWithNibName:@"AITReconnectView" bundle:nil] ;      
    ReconnectView.edgesForExtendedLayout = UIRectEdgeNone;          
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", nil) style:UIBarButtonItemStyleBordered target:nil action:nil];               
   [self.navigationController pushViewController:ReconnectView animated:YES];

例如:当我单击 backBarButtonItem 时,它将运行 Timer 3 秒。然后回到第一个视图。

我搜索了一些信息,但它只覆盖了backBarButtonItem的新方法。

如何在backBarButtonItem的方法中添加Timer,但保留backBarButtonItem的原始方法?

提前致谢。

【问题讨论】:

  • 你能分享你的代码吗?
  • Apple 不允许我们处理 backBarButton 的事件。你可以自己制作一个backBarButton,设置为leftBarButtonItem,并为它处理事件
  • 如果用户希望返回,你为什么要推迟事件?
  • @MarkRamotowski 我想更改图像并为用户显示一些信息。

标签: ios objective-c backbarbuttonitem


【解决方案1】:

有两种方式:

  1. 创建自己的后退按钮(类似于原生)和选择器方法并将其分配给按钮:

    UIBarButtonItem *addButton = [[[UIBarButtonItem alloc] initWithTitle:@"BackToVcA"
                                                                   style:UIBarButtonItemStyleBordered
                                                                  target:self
                                                                  action:@selector(addAction:)] autorelease];
    
    self.navigationItem.rightBarButtonItem = addButton;
    
  2. 使用 UIViewController 生命周期方法,viewWillDisappearviewDidDisappear

希望这就是你要找的。​​p>

【讨论】:

  • 我尝试在viewWillDisappearviewDidDisappear 中添加一个计时器。但是视图转回第一个视图并且没有等待计时器完成。当视图转到第一个视图时,计时器仍在计数...
  • 我知道你发帖的第一种方式。但是我不知道如何通过代码返回到第一个视图。
【解决方案2】:
  • 如果您想延迟到第一个视图的转换 3 秒, 只需添加, [NSThread sleepForTimeInterval:3.0];viewWillDisappear第二个视图的方法。

  • 如果要在目标 C 中执行方法调用,则 [self performSelector:@selector(methodName) withObject:self afterDelay:3.0]; 应该可以正常工作。分享代码以获取更多信息。

【讨论】:

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