trying to update a UILabel on a parent view controller when dismissing the modal view

前端 未结 3 761
北海茫月
北海茫月 2020-12-06 21:53

I am trying to update a UILabel in a parent View after someone makes a change in a modal view. So, after they click \"save\" ... the newly entered value would change what t

3条回答
  •  星月不相逢
    2020-12-06 22:22

    There are many ways to do this. One way is to use NSNotificationCenter to be able to do calls between different classes. So in the parent view you will have a function responsible for the update (lets call it updateLabel) and you will do the following:

    - (void) updateLabel
    {
        yourLabel.text = @"what you need";
    }
    
    - (void)viewDidLoad
    {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateLabel) name:@"DoUpdateLabel" object:nil];
    }
    

    Now in other view simply post a notification in the save button:

    [[NSNotificationCenter defaultCenter] postNotificationName:@"DoUpdateLabel" object:nil userInfo:nil];
    

    EDIT: I have to mention 2 things here:

    1. In this scenario it is always preferable to have Shared Data Modal where you save your data in so you can access this data in any view in your program. In other words it is a good practice to separate the data from classes.
    2. Remember to resomve the NSNotificationCenter that you used in the main view by adding [[NSNotificationCenter defaultCenter] removeObserver:self];

提交回复
热议问题