所以我在Xcode中有一个应用程序,它有一个主视图控制器和一个设置视图控制器。我想在设置视图中有一个分段视图,触发主视图上的操作。设置视图控制器连接到它自己的类“settingsviewcontroller.h”,视图控制器连接到它自己的类“viewcontroller.h”。那我该怎么做呢?
答案 0 :(得分:0)
*顺便说一下,我不确定这是否正确
第一种方式:
尝试执行 - (IBAction)...连接。我知道他们是不同的观点,但也许你仍然可以从不同的响应者那里建立联系。
第二种方式:
尝试导入.h / .m文件,以便您可以从其他类
访问不同的变量等答案 1 :(得分:0)
一种方法是定义协议:
<强> SettingsDelegate.h 强>:
@protocol SettingsDelegate
- (void)settingsUpdated:(NSDictionary *)newSettings
@end
在两个视图控制器中包含此标头。 viewController符合此协议。建立从设置控制器到viewcontroller的弱引用,例如
<强> SettingsViewController.m 强>:
@interface SettingsViewController ()
@property (readwrite, weak) id<SettingsDelegate> settingsDelegate;
@end
实例化settingscontroller时,将self.settingsDelegate
设置为viewcontroller。假设您从viewcontroller创建settingscontroller,它将是这样的:
<强> viewController.m 强>:
SettingsController *settingsController = [[SettingsController alloc] init];
settingsController.settingsDelegate = self;
// present the settingsController
在设置控制器中,更新设置时:
if (self.settingsDelegate) {
NSDictionary *newSettings = ...; // set this value
[self.settingsDelegate settingsUpdated:newSettings];
}
有关详细信息,请参阅Apple的使用协议:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html