2011-04-22 41 views
1

基本上我遇到的问题是我无法从称为表的另一视图在我的主视图控制器(称为记录器)中调用方法。如何在控制器被解雇时在另一个视图中调用方法

当用户单击某个按钮时,表格视图将作为Recorder的Modalview控制器(presentmodalViewController)加载。表视图让我的用户从设置1更改为设置2,并具有完成按钮(调用dismissmodalviewcontroller)并将用户返回到主视图(记录器)。

我想要的是在完成按钮在表格视图上单击时调用记录器中的方法。此方法称为Changeview并更改设置。我目前无法正确调用此方法。

当前代码我是:

changeView方法

- (void)changeView 
{ 

    [levelsView changeView]; 

} 

TableViewController接口文件

RecorderViewController*recorderViewController; 

@property (nonatomic, retain) RecorderViewController *recorderViewController; 

TableViewController实现文件

0按下

- (IBAction) Switch: (id) sender { 

[self dismissModalViewControllerAnimated:YES]; 

} 

当前的代码

@synthesize recorderViewController; 

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

    } 

方法完成时调用按钮没有给我任何错误,但它也不会更改设置。我也试图设置通知没有运气。对此有何洞见?

回答

1

您是否在初始化tableViewController时设置recorderViewController的值(即,您是否在Recorder类中设置tableViewController.recorderViewController = self)?如果没有,那么您拨打[recorderViewController changeView]的电话会发送一条消息给零 - 这不会崩溃,但它也不会执行任何操作。另外,将TableViewController传递给您的RecorderViewController可能不是两个控制器进行通信的最佳方式:您可能需要考虑使用NSNotificationCenter或传递模型对象并使用Key-Value Observing

+0

嗨斯科特,你说得对我没有设置tableviewcontroller.recorderviewcontroller = self。这已经解决了我的问题。非常感谢您的帮助。我也会研究关键价值的观察。 – Nlks 2011-04-23 01:10:57

相关问题