评论更新
我试图让这段代码工作,但每当我按下“nextButton”时,程序就会结束,我无法弄清楚哪里出了问题。你能不能看看我的代码,看看是否有什么问题。
- (void)viewDidLoad {
[super viewDidLoad];
Player1.placeholder = @"Player 1";
Player2.placeholder = @"Player 2";
Notes1.placeholder = @"Notes";
Notes2.placeholder = @"Notes";
[nextButton setAction:@selector(nextButtonPressed:)];
}
-(IBAction)nextButtonPressed:(id)sender {
if ([self.delegateP respondsToSelector: @selector(addPlayerViewController:didFinishEnteringPlayer1:didFinishEneteringPlayer2:)]) {
[self.delegateP addPlayerViewController:self didFinishEnteringPlayer1:Player1.text didFinishEneteringPlayer2:Player2.text];
NSLog(@"Works");
}
[self performSelector:@selector(nextButtonPressed:) withObject:nil afterDelay:0.25];
}
我还有一个问题与这段代码有关。要使用委托(delegate)通过不同的 View Controller 传递信息,您是否必须使用按钮或条形按钮项?
显示的错误:
-[UIStoryboardPushSegueTemplate nextButtonPressed:]: unrecognized selector sent to instance
最佳答案
首先你不能把两行:
[self presentModalViewController:gameDetails animated:YES];
[self.navigationController pushViewController: gameDetails animated:YES];
然后转到您的 viewController PlayersViewController 并单击 Storyboard单击编辑器(顶部菜单 XCode)嵌入 > 导航 Controller 现在您使用您的代码更改下一行:
-(void) nextButtonPressed {
NSLog(@"Hi my friend");
[self performSegueWithIdentifier:@"YOUR_SEGUE_NAME_HERE" sender:@"hi"];}
并创建新函数:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
YourViewController *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:sender];
}}
ViewController“YourViewController.h :
@interface YourViewController : UIViewController
@property (nonatomic, strong) NSString *MyObjectHere;
@end
关于ios - 按钮不响应选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32937970/