Я новичок в Objective-C, и в настоящее время я работаю над приложением для iOS.
У меня есть кнопка, которую я вызываю SettingsButton, которая находится внутри пользовательского объекта UIView.
Когда я нажимаю на эту кнопку, вызывается обработчик «Touch Up Inside» FileOwner «ViewController.m», который позже помещает ViewController в NavigationController.
Но приложение падает с SIGABRT или EXC_BAD_ACCESS.
Это происходит, поскольку я вставил код с помощью NavigationController в AppDelegate.m
Есть идеи?
AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *vc;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
vc = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
} else {
vc = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
}
UINavigationController* navController =
[[UINavigationController alloc] initWithRootViewController:vc];
navController.navigationBarHidden = true;
[self.window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
ViewController.m:
- (IBAction)SettingsPressed:(id)sender {
NSLog(@"SettingsPressed!");
}
Чтобы прояснить: я собираюсь изменить вид только при нажатии кнопки Settings и наличии кнопки Back для возврата назад. Но приложение уже вылетает с пустым Eventhandler.
Сообщение об ошибке при возникновении sigabrt:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString SettingsPressed:]: unrecognized selector sent to instance 0x7a06fc0'