2

我有一个首字母ViewController,我们称之为它HomeViewController,它有一个按钮,它调用一个模态视图控制器,我们称之为它ModalViewController。在里面ModalViewController我有一个包含两个部分的表格视图。如果您单击第 0 节中的任何单元格,它会将信息发送回HomeViewController(这部分我正在使用协议)。如果您单击第 1 节中的任何单元格,它会推送到另一个带有选项的视图控制器,让我们调用它OptionsViewController。这对我来说很棘手。如果您单击任何这些选项,请关闭OptionsViewController并关闭 ModalViewcontroller并将该信息发送到HomeViewController,就像发送ModalViewControllerHomeViewController。我试图建立一个类似于 in 的协议,ModalViewController但它从未被调用过。

OptionsViewController协议 & .h 文件

@protocol OptionsViewControllerDelegate <NSObject>
@optional
-(void) optionsInfo:(NSArray *)optionsViewArray;

@end

@interface OptionsViewController : UITableViewController
@property (retain) id delegate;
@property (nonatomic, strong) NSArray *sendArray;
@end

OptionsViewController.m 调用它以从堆栈中弹出。

{
    [self dismissOptionsView];
}
-(void) viewWillDisappear:(BOOL)animated
{
    NSLog(@"Send Array: %@", self.sendArray);
    [[self delegate] optionsInfo:sendArray];
}
-(void)dismissOptionsView
{
    [self.navigationController popViewControllerAnimated:YES];
}

ModalViewController.h 内部

@protocol ModalViewControllerDelegate <NSObject>
@optional
-(void) sendInformation:(NSArray *)infoArray;
@end

@interface ModalViewController : UITableViewController <ConditionsViewControllerDelegate, UISearchBarDelegate>
{
    UISearchBar *searchDrugBar;
}
@property (retain) id delegate;
@property (nonatomic, strong) IBOutlet UISearchBar *searchDrugBar;
@property (nonatomic, strong) NSArray *infoArray;
@end

应该进入 OptionsInfo 的 ModalViewController.m。

-(void) optionsInfo:(NSArray *)optionsViewArray
{
    //IT NEVER REACHES HERE :(
    NSLog(@"HERE");
    self.infoArray = optionsViewArray;
    NSLog(@"Finished");
    [self dismissViewControllerAnimated:YES completion:nil];
}

有没有人做过类似的事情或知道解决方案?任何有关正确方向的信息、链接、指导等将不胜感激。提前致谢。

4

1 回答 1

0

您需要在下面的 OptionsViewController 中设置委托:-

在您OptionsViewController.m的方法中包含以下行

 [self setDelegate:ModalViewController];
于 2013-10-22T18:48:11.980 回答