iOS - 按下按钮时不调用方法

时间:2013-04-09 22:28:02

标签: ios xcode storyboard

我目前在我正在处理的应用程序中有一个按钮,当我按下按钮时,它似乎在按下时不会调用该方法。我想添加了所有正确的代码,并正确地连接了一切,但情况似乎并非如此。

ViewControllerRootHome.h

@property (weak, nonatomic) IBOutlet UIButton *btndev;

- (IBAction)showDev:(id)sender;

ViewControllerRootHome.m

@synthesize btndev = _btndev;

- (IBAction)showDev:(id)sender {

    NSLog(@"dev button pressed");
    //dev button pressed
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    ViewControllerDev *dev = (ViewControllerDev *) [storyboard instantiateViewControllerWithIdentifier:@"dev"];
    [self presentModalViewController:dev animated:YES];
    NSLog(@"dev button press End");
}

执行甚至没有达到方法中的第一个日志语句。

事情就这样了,

另一方面,显示“Logs”的按钮似乎正在加载场景,但无论出于何种原因,“dev”按钮都不想调用方法/加载场景。

哦,所有内容的源代码都可以在这里找到,https://github.com/ipatch/KegCop

wiring

1 个答案:

答案 0 :(得分:2)

该按钮工作正常,所以如果您遇到问题,我会向您推荐AliSoftware关于确保清理构建的评论。但是,如果您查看方法名称showDev的左侧,当IBOutlet正确连接时,您会看到一个坚实的子弹:

enter image description here

如果将其与另一种方法进行比较,此方法saveMasterEmail当前未正确连接,由方法左侧的空白圆圈证明:

enter image description here

无关,您的代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ViewControllerDev *dev = (ViewControllerDev *) [storyboard instantiateViewControllerWithIdentifier:@"dev"];
[self presentModalViewController:dev animated:YES];

可以简化为:

UIViewController *dev = [self.storyboard instantiateViewControllerWithIdentifier:@"dev"];
[self presentModalViewController:dev animated:YES];

或者,更简单的是,为该按钮定义一个segue,你不需要对代码做任何事情。

最后,我要确保你避免场景之间的循环引用。您不应该从presentViewControllerpresentModalViewController进行模态segue(或AB),然后再从BA 。如果您执行从AB的模态转换,则应致电dismissViewControllerAnimated以返回A。否则,您将有两个A浮动的实例。