Я новичок в 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!");
}
Чтобы прояснить: я намерен только изменить представление при нажатии кнопки SettingsButton и наличии кнопки Back для возврата. Но приложение уже вылетает с пустым обработчиком событий.
Сообщение об ошибке при появлении sigabrt:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString SettingsPressed:]: unrecognized selector sent to instance 0x7a06fc0'
settingsPressed
не тот объект. Выяснить, где вы это сделали, было бы проще, если бы вы включили трассировку. - person Hot Licks   schedule 02.03.2012