我是一個新手iOS開發人員,最近開發了幾個Android應用程序,但我不熟悉iOS的行話。讓我解釋我的問題。我想使用兩種不同的UIViewController
。我爲兩個控制器創建了.h
和.m
文件。我的計劃是在第一個視圖控制器出現在屏幕上五秒鐘後,將第二視圖控制器推到第一視圖控制器的頂部。我的意思是第一個視圖控制器就像啓動畫面或類似的東西。推送ViewController給NSInvalidArgumentException
這是我的貢獻。在第一視圖控制器,I所定義(其中之一當然實現)這兩種方法:
-(void) pushSecondController {
SecondViewController *secondController = [[SecondViewController alloc]
initWithNibName: nil
bundle: NULL];
[self.navigationController pushViewController: secondController animated: YES];
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self performSelector: @selector(pushViewController:animated:)
withObject: nil
afterDelay: 5.0f];
}
和所述第二視圖控制器看起來像這樣:
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
self.title = @"Second Controller";
}
我已經改變僅viewDidLoad
方法。當我運行模擬器時,第一個視圖控制器運行良好,等待5秒鐘並墜毀。輸出看起來像:
2012-08-24 10:46:34.104 NavApplication[20355:f803] -[ViewController pushViewController:]: unrecognized selector sent to instance 0x6e7f780
2012-08-24 10:46:34.107 NavApplication[20355:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController pushViewController:]: unrecognized selector sent to instance 0x6e7f780'
讓我問一個問題:我知道有methodName
和methodName:
之間的差異。任何人都可以解釋有什麼區別?
任何幫助,將不勝感激。
UPDATE:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
[self.window makeKeyAndVisible];
[self.window addSubview: self.navigationController.view];
return YES;
}
你自己設置的self.navigationController?你可以發佈你的應用委託didFinishLaunchingWithOptions方法嗎? – CarlJ
更新了我的問題,我可以看到,我設置了'navigationController'。 –