我想要一个按钮来触发不同视图中的动作

时间:2014-03-07 02:44:34

标签: ios viewcontroller

所以我在Xcode中有一个应用程序,它有一个主视图控制器和一个设置视图控制器。我想在设置视图中有一个分段视图,触发主视图上的操作。设置视图控制器连接到它自己的类“settingsviewcontroller.h”,视图控制器连接到它自己的类“viewcontroller.h”。那我该怎么做呢?

2 个答案:

答案 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