【发布时间】:2016-10-14 00:56:31
【问题描述】:
Please have a look at the screenshot of my project for better understanding 我在堆栈溢出和其他有关编写自定义委托的网站上浏览了很多。但在我的情况下,代表没有被调用。从截图中可以看出,初始视图控制器有一个点击按钮,标签栏被调用。从第一个 Tab bar 屏幕开始,假设我想将数据传回初始视图控制器,我该怎么做?我什至可以使用 NSUserDefaults 但我想以正确的方式编写代码。所以我开始知道委托是将数据从一个控制器传回前一个控制器的最佳方式。但是由于我在两者之间使用了标签栏,所以没有调用代理。请帮助,
以下是代码, 我希望将数据从第一个选项卡传递到初始控制器。
TabScreenController.h:
@protocol TabScreenControllerDelegate <NSObject>
-(void)someFunction:(NSString*)someValue;
@end
@interface TabScreenController : UIViewController
@property (nonatomic, weak) id <TabScreenControllerDelegate> delegate;
@end
InitialViewController.h:
@interface InitialViewController : UIViewController<TabScreenControllerDelegate>
InitialViewController.m:
TabScreenController* controller = [[TabScreenController alloc]init];
[controller setDelegate:self];
//The delegate is not getting called
-(void)someFunction:(NSString *)someValue{
NSLog(@"%@", someValue);
}
委托没有被调用,可能 InitialViewController.m 中的 TabScreenController 与单击选项卡时创建的实例不同。
请帮助我解决这个问题。我该如何处理这种情况。如果我没有说清楚,请告诉我..
谢谢
【问题讨论】:
标签: ios objective-c tabs delegates uitabbarcontroller