【发布时间】:2014-01-18 05:10:49
【问题描述】:
配置:
-UIviewController 嵌入在Navigationcontroller 中。
-UIviewController 有一个 UIscrollview 作为子视图
-UIscrollview 有一些创建图表的视图:每个包含图表的视图都有自己的 .h 和 .m 文件,我想从这个文件触发一个到 tableview 控制器的 segue。
-A Tableviewcontroller 已添加到 xcode 中,并且还创建了从 UIviewController 到 TableViewcontroller 的 segue (Xcode)
-在UIView 中创建了一个协议,以便从那里推送segue。
问题:
delegate 总是 nil,segue 方法永远不会被调用
UIVIEW .h 文件
@protocol UItoUIvcDelegate <NSObject>
-(void)triggerSegue;
@end
@interface CFfirstGraph : UIView <CPTPlotDataSource , CPTPieChartDelegate,UIActionSheetDelegate>
@property(weak, nonatomic) id <UItoUIvcDelegate> delegate;
@end
UIVIEW .m 文件 (sn-p)
-(void)pieChart:(CPTPieChart *)pieChart sliceWasSelectedAtRecordIndex:(NSUInteger)index
{
if (self.delegate == nil)
{
NSLog(@"nil");
}
[self.delegate triggerSegue];
}
UIVIEWCONTROLLER .h 文件
#import "CFfirstGraph.h"
@interface CFMainViewController : UIViewController <UItoUIvcDelegate, UITableViewDelegate, UITableViewDataSource>
@end
UIVIEWCONTROLLER .m 文件 (sn-p)
- (void)viewDidLoad
{
[super viewDidLoad];
self.scrollView.contentSize = CGSizeMake(320, 1000);
[self.view addSubview:self.scrollView];
CFfirstGraph *click =[[CFfirstGraph alloc]init];
click.delegate = self ;
}
-(void)triggerSegue
{
[self performSegueWithIdentifier:@"detailedData" sender:self];
NSLog(@"estoy aqui");
}
我做错了什么?为什么代表总是 nil ?我尝试添加方法 setDelegate 但仍然没有运气。
谢谢, dom
【问题讨论】:
标签: objective-c uiview uiviewcontroller delegates protocols