ios - 更新 iOS 中导航项的左栏按钮

标签 ios cloud uinavigationitem

我遇到一种情况,我需要不断轮询云并查看是否有可用数据,然后使用更新的导航项的左栏按钮和更新的图标通知用户(应用程序)。

所以流程是这样的: 在 Appdelegate 中,我有一个 NStimer 对象,每 1 分钟触发一次以从云加载元数据。加载元数据后,它会通知数据加载成功。 ViewController 堆栈中可见的任何 View Controller 都会观察到该通知。

那么,问题是: a) 这种模式是否可持续且可扩展?我想在这里与云无关。 b) 可以采取哪些措施来完善该策略以使其具有可扩展性? c) 有哪些替代策略可以实现这一目标?

如果有人对这个问题进一步感兴趣,我将发布代码。

最佳答案

我会给你更新左侧按钮的代码片段。显然,您可以在这里更改各种变量,因此以此为例。

-(void) configureLeftBarButtonItem
 {
    UIButton * leftButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 11.5, 15)];
    [leftButton setBackgroundImage:[UIImage imageNamed:@"backarrow.png"] forState:UIControlStateNormal];
    [leftButton addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
    // you can obviously do any image name and any selector and any view, button is just a classic example
    UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftButton];
     // this is so that the button is not right up against the side
     UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
                                   initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                                   target:nil action:nil];
     negativeSpacer.width = 10;

     self.navigationItem.hidesBackButton = YES;
     self.navigationItem.leftBarButtonItems = [NSArray
                                          arrayWithObjects:negativeSpacer, leftButtonItem, nil];
 }

就可扩展性而言,我不是该领域的专家,但我编写了一些服务器驱动的应用程序,并且我认为每分钟请求一次服务器对给定服务器来说并不是那么繁重,而且基本上是合理的。我每 10-15 秒请求一次服务器(准消息应用程序),这很好。我确实认为从服务器每分钟随机更新一个导航项目可能不会带来最佳的用户体验,因为我可以想象不断变化的导航流程可能会让用户感到困惑。话虽这么说,我不确定您的具体需求是什么,所以我无法进一步发表评论。

关于ios - 更新 iOS 中导航项的左栏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583425/

相关文章:

ios - registerNib UiTableView 在项目损坏后无法正常工作

objective-c - 使用 segue 在 Storyboard中的 View Controller 之间传递数据

ios - 在 Flutter 上隐藏 iOS 状态栏

azure - Windows Azure 上的 JavaEE 技术堆栈?

iphone - 我如何识别 self.editButtonItem 按钮的单击事件?

iPhone:设置导航栏标题

objective-c - 有没有办法将 Node.JS 与 Objective-C/iPhone SDK 集成?

Java 和聚类的不同类型/方法

streaming - 如何集成Storm和Kafka

ios - 第一个 leftBarButtonItem 隐藏