在目标 C 中通过委派简单传递数据



我正在使用Xcode在目标c中编写应用程序。 我正在尝试使用委派将数据从容器视图控制器传递到父视图控制器。 我已经成功地将数据传递给父视图控制器,但是所有文档都设置了我使用 viewDidLoad 或 viewDidShow 发送到 .m 实现文件中的 .h 头文件的内容。 我想知道,由于视图已经存在,是否有办法检测视图中的数据已更改并自动运行方法或代码以使用新信息更新视图。 类似于didReceiveNewData或didEditExistingValues的想法(当然这些不是真正的方法)。 感谢您的帮助!

编辑:到目前为止我所做的:

我想将数据从 MainFeedTableViewController 传递到 MainFeedViewController(第一个在第二个容器中的容器中)。我想将 MainFeedViewController 中自定义导航栏的标题设置为 MainFeedTableViewController 中描述的内容。

在MainFeedTableViewController.m(发送数据的视图)中,我有:

#import "MainFeedTableViewController.h"
#import "FeedViewController.h"
@interface MainFeedTableViewController ()
@end
@implementation MainFeedTableViewController
- (IBAction)swipeLeftDetected:(UIGestureRecognizer *)sender {
    UIStoryboard *mc = self.storyboard;
    FeedViewController *fv = [mc instantiateViewControllerWithIdentifier:@"FeedViewController"];
    fv.navigationBarTitleToSet = @"HOPING TO SET TITLE TO THIS";
    [self performSegueWithIdentifier:@"MainToLocalFeed" sender:self];
}
and some other unrelated stuff..

在 MainFeedTableViewController.h 中,我有:

#import <UIKit/UIKit.h>
@interface MainFeedTableViewController : UITableViewController
@end

在MainFeedViewController.m(接收数据的那个)中,我有:

#import "FeedViewController.h"
@interface FeedViewController () <UINavigationBarDelegate>
@property (weak, nonatomic) IBOutlet UINavigationBar *navigationBar;
@end
@implementation FeedViewController
- (void)viewDidLoad {
    [super viewDidLoad];
}
- (void)setNavigationBarTitle:(NSString *)navigationBarTitle{
    self.navigationItem.title = navigationBarTitle;
}

在 MainFeedViewController.h 中,我有:

#import <UIKit/UIKit.h>
@interface FeedViewController : UIViewController
@property NSString *navigationBarTitleToSet;
@end

我想使用来自 .h (navigationBarTitleToSet) 的数据运行 setNavigationBarTitle 方法,或者仅使用来自发送视图控制器的数据,如果可能的话,运行带有委派的方法。非常感谢,我希望这是可能的:)

事实证明,我需要添加第二个导航栏来考虑容器视图,允许我使用 parentViewController 方法和 navigationItem.title 在当前堆栈中导航。 对于碰巧在容器中找到此内容的任何人,请确保在嵌入 segue 之后立即添加一个。我仍然不确定您是否可以通过委派使用方法,但由于 viewDidLoad,我无法再考虑任何需要它的情况。感谢@Tander的帮助!

最新更新