我正在创建一个iOS应用。在视图控制器上有几个按钮。
其中一个是AButton,在这里你有我的头文件:
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController
- (IBAction)Aaction:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *AButton;
@end
我想在点击AButton时打开另一个视图控制器:
#import "FirstViewController.h"
#import "EntradasTableViewController.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)Aaction:(id)sender {
EntradasTableViewController *detailViewController =[self.storyboard instantiateViewControllerWithIdentifier:@"entradasViewController"];
detailViewController.categoriaDescription = @"A";
[self.navigationController pushViewController:detailViewController animated:YES];
}
@end
我已将StoryBoard标识符声明如下:
但点击按钮后没有任何反应,没有抛出任何异常,并且未显示视图控制器detailViewController。
欢迎任何帮助。
NEW IMAGED ADDED:
以下是我在故事板中声明按钮操作的屏幕截图:
答案 0 :(得分:1)
问题是您的FirstViewController实例不在导航界面中。因此,当您的FirstViewController说self.navigationController
时,那就是零。因此这一行:
[self.navigationController pushViewController:detailViewController animated:YES];
...涉及向nil发送消息。在Objective-C中,向nil发送消息不起作用。所以这就是为什么没有发生的原因。