首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UILabel到UILabel

UILabel到UILabel
EN

Stack Overflow用户
提问于 2015-01-13 07:00:09
回答 3查看 122关注 0票数 0

我是一个初学者,所以我为任何看起来被忽视或简单的事情道歉。

基本上,我要做的是在屏幕上设置一个日期选择器,更新一个UILabel,然后将更新UILabel的结果推回前一个屏幕上的另一个UILabel。我的日期选择器工作得很好,它按预期更新了UILabel,但是我不知道如何对它进行编码,以便用来自DatePicker的结果来更新第一个UILabel。以下是我对DatePicker的看法。

代码语言:javascript
复制
class StartDatePickerViewController: UIViewController {


    @IBOutlet weak var dateLabel: UILabel!
    @IBOutlet weak var datePicker: UIDatePicker!


    override func viewDidLoad() {
    super.viewDidLoad()

    datePicker.addTarget(self, action: Selector("datePickerChanged:"), forControlEvents: UIControlEvents.ValueChanged)

    // Do any additional setup after loading the view.
}

func datePickerChanged(datePicker:UIDatePicker) {
    var dateFormatter = NSDateFormatter()

    dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle

    var strDate = dateFormatter.stringFromDate(datePicker.date)
    dateLabel.text = strDate
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

我需要StartDatePickerViewController更新UILabel startDateLabel上的AddNewTradeViewController,我不知道如何正确地处理这个问题。任何建议都将不胜感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-13 07:38:19

您可以使用NSNotification添加观察者或委托,这将更好地与直接发送数据相比,您应该遵循该模式。当您要从第二个viewController弹出到第一个视图控制器时,您可以调用委托模式或NSNotification观察者(如果您想在多个地方显示标签数据,则可以使用NSNotification)。否则,委托模式将有利于一对一的消息传递。希望这对你有帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-01-13 07:10:41

您应该使用一种称为委托的模式。这意味着在AddNewTradeViewController上从datePickerChanged调用指定的方法。

如何在Swift中设置委托,可以找到here

票数 0
EN

Stack Overflow用户

发布于 2015-01-13 07:19:34

我从您的问题中了解到,当您将UILabel从SecondView上推回来时,您希望在第一个屏幕上更新它。

如果我的理解是正确的,那么请如下所示。

首先在第一个视图控制器中定义一个NSString属性

代码语言:javascript
复制
@property (strong, nonatomic) NSString* lblString;

现在,当弹出从您的firstviewContoller返回到您的secondViewController时,只需将更新后的值赋值给其名为lblString的属性。

UINavigationController在viewControllers中维护所有推送控制器的列表,根控制器总是在0。

代码语言:javascript
复制
Firstcontroller *firstcontroller = (Firstcontroller *)[self.navigationController.viewControllers objectAtIndex:0];
myController.lblString = @"Your Updated DatePickerValue" ;
[self.navigationController popToViewController:myController animated:YES];

现在,lblString已经更新了popBack到firstViewController时的值,并且可以在firstViewcontroller中的任何地方使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27916512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档