如何从一个viewcontroller调用函数到另一个控制器?

时间:2017-07-28 05:50:02

标签: ios objective-c

SettingsStore.h

void* p_1 = malloc(4);
void* p_2 = malloc(4);

[oooo][xxxx][oooo][oooo]
^           ^
p_1         p_2

menuView.m

@interface SettingsStore : IASKAbstractSettingsStore    
{      
    @public     
    NSDictionary *dict;     
    NSDictionary *changedDict;    
}    

- (void)removeAccount;    
@end

我想从 menuView.m 中调用此 removeAccount 函数。但我收到了错误。 enter image description here

如何修复它并调用此removeAccount。

2 个答案:

答案 0 :(得分:3)

您的准则中有一些错误,请在下面找到。

  1. [foo removeAccount];调用此方法是正确的
  2. [self.navigationController pushViewController:foo animated:YES];
    不正确,因为SettingsStore不是子类 UIViewController只能将UIViewController的子类推送到 导航控制器
  3. 出口(0);调用此方法不是 Apple推荐

答案 1 :(得分:0)

您正在从menuView.m文件中正确调用removeAccount,但您的代码存在一些问题:

  1. 您正在将foo视为UIViewController,它实际上是SettingStore类的成员。 SettingStore类是指实际屏幕,还是更像是数据对象(用于存储设置?)。如果它是后者,你不想推它。您可以创建并使用它,但用户不需要查看它。

  2. 您正在调用exit(0);你可以删除该行。如果要从内存中删除menuView.m文件,请删除对它的引用(例如,从其父视图控制器)。

  3. menuView.m文件令人困惑,因为它是一个视图或一个viewController。我通常会将一个IBAction放在ViewController文件中,而不是视图文件中。您的基本设计模式是MVC(模型/视图/控制器)。在这种情况下,似乎您的SettingStore文件是Model(数据),menuView.m是一个View,您的代码用于Controller位。