我有一个viewcontroller“ResultsViewController”与一个名为emailbutton的按钮。当按下这个按钮时,我想要从另一个叫做“Illusions_AppViewController”的视图调用一个函数(这两个视图控制器都没有链接)。代表不被称为
因此,我在 “ResultsViewController.h” 中定义的协议:
@protocol ResultsViewDelegate <NSObject>
@optional
- (void) resultspage;
@end
@interface ResultsViewController : UIViewController
{
id<ResultsViewDelegate> mydelegate;
UIButton *emailButton;
}
@property(nonatomic,retain) IBOutlet UIButton *emailButton;
@property (nonatomic,assign) id<ResultsViewDelegate> mydelegate;
@end
在ResultsViewController.m:
-(IBAction)emailButtonPressed:(id)sender
{
NSLog(@"entered emailbuttonpressed");// the app enters this method and gets hanged
if ([mydelegate respondsToSelector:@selector(resultspage)]) {
NSLog(@"entered respondstoselector");// this is never displayed in the log-showing that the delegates doesnt respond to selector
[mydelegate resultspage];
}
}
以我其它视图, “Illusions_AppViewController.m”:
- (void)resultspage{
NSLog(@"Entered results page");
ResultsPageController *resultspagecontroller = [[ResultsPageController alloc] initWithNibName:@"ResultsPageController" bundle:nil];
resultspagecontroller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:resultspagecontroller animated:YES];
}
希望如果有人能帮助我这个。我不知道为什么代表不被调用。一旦我按下电子邮件按钮,应用程序就会被挂起。谢谢!
请大家在今后的正确格式化您的代码的时间。 – JeremyP 2010-11-26 12:01:30