Iphone 当控制器被解除时,如何在另一个视图中调用方法

Iphone 当控制器被解除时,如何在另一个视图中调用方法,iphone,objective-c,xcode,uiview,methods,Iphone,Objective C,Xcode,Uiview,Methods,基本上,我遇到的问题是无法从另一个名为Table的视图调用主视图控制器(称为Recorder)中的方法 当用户单击按钮时,表视图将作为Modalview控制器(PresentModalView控制器)从记录器加载。表视图允许我的用户从设置1更改为设置2,并有一个“完成”按钮(调用dismissmodalviewcontroller)并将用户返回到主视图(记录器) 我想要的是在表视图上单击“完成”按钮时在Recorder中调用一个方法。此方法称为Changeview并更改设置。我当前无法正确调用此

基本上,我遇到的问题是无法从另一个名为Table的视图调用主视图控制器(称为Recorder)中的方法

当用户单击按钮时,表视图将作为Modalview控制器(PresentModalView控制器)从记录器加载。表视图允许我的用户从设置1更改为设置2,并有一个“完成”按钮(调用dismissmodalviewcontroller)并将用户返回到主视图(记录器)

我想要的是在表视图上单击“完成”按钮时在Recorder中调用一个方法。此方法称为Changeview并更改设置。我当前无法正确调用此方法

我目前的代码是:

更改视图方法

- (void)changeView
{

    [levelsView changeView];

}
- (IBAction) Switch: (id) sender { 

 [self dismissModalViewControllerAnimated:YES];

}
TableViewController接口文件

RecorderViewController*recorderViewController;

@property (nonatomic, retain) RecorderViewController *recorderViewController;
@synthesize recorderViewController;

    - (void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        [recorderViewController changeView];

    }
TableViewController实现文件

RecorderViewController*recorderViewController;

@property (nonatomic, retain) RecorderViewController *recorderViewController;
@synthesize recorderViewController;

    - (void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        [recorderViewController changeView];

    }
按下“完成”按钮时调用的方法

- (void)changeView
{

    [levelsView changeView];

}
- (IBAction) Switch: (id) sender { 

 [self dismissModalViewControllerAnimated:YES];

}

当前代码没有给我任何错误,但它也不会更改设置。我还尝试设置通知,但运气不佳。对此有何见解?

在初始化tableViewController时,您是否设置了recorderViewController的值(即,您是否在Recorder类中设置了
tableViewController.recorderViewController=self
)?如果没有,那么您对
[recorderViewController changeView]
的调用将向nil发送一条消息,该消息不会崩溃,但也不会执行任何操作


作为旁白,传递您的TabelVIEW控制器对RealDeVIEW控制器的引用可能不是两个控制器通信的最佳方式:您可能想考虑使用或传递模型对象并使用.

当初始化TabelVIEW控制器时,是否设置CealDeVIEW控制器的值?(即,您是否在Recorder类中设置了

tableViewController.recorderViewController=self
)?如果没有设置,那么您对
[recorderViewController changeView]
的调用将向nil发送一条消息,该消息不会崩溃,但也不会执行任何操作


作为旁白,传递您的TabelVIEW控制器对CealDeVIEW控制器的引用可能不是两个控制器通信的最佳方式:您可能想考虑使用或传递模型对象并使用.< /P>嗨,史葛,您是对的,我没有设置TabelVIEW控制器。非常感谢您的帮助。我也将研究键值观察。嗨,斯科特,您是对的,我没有设置tableviewcontroller.recorderviewcontroller=self。这解决了我的问题。非常感谢您的帮助。我也将研究键值观察。