Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在AppDelegate中切换视图时出错_Objective C_Xcode_Ios4_Uiview_Uiviewcontroller - Fatal编程技术网

Objective c 在AppDelegate中切换视图时出错

Objective c 在AppDelegate中切换视图时出错,objective-c,xcode,ios4,uiview,uiviewcontroller,Objective C,Xcode,Ios4,Uiview,Uiviewcontroller,我正在制作一个带有登录功能的iPhone应用程序。在他们登录后,我将其写入数据库。当用户打开应用程序时,我希望它检查是否转到应用程序或显示UIView供他们登录。我有一些代码,但它崩溃了。这是: - (void)applicationDidFinishLaunching:(UIApplication *)application { sleep(5); // Configure and show the window [window addSubview:[navigationContro

我正在制作一个带有登录功能的iPhone应用程序。在他们登录后,我将其写入数据库。当用户打开应用程序时,我希望它检查是否转到应用程序或显示UIView供他们登录。我有一些代码,但它崩溃了。这是:

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
sleep(5);
// Configure and show the window
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
//[application setStatusBarStyle:UIStatusBarStyleBlackOpaque];

int checkLoginCount = 0;
NSArray *checkLoginInfo = [database executeQuery:@"SELECT * FROM login WHERE id != '' or email != '' or password != ''"];   
for (NSDictionary *checkLoginRow in checkLoginInfo) {
    checkLoginCount++;
}

NSLog(@"alsdfjaldfksjalsdfjkas %d", checkLoginCount);

if (checkLoginCount == 0) {
    SplashPageViewController *screentwo = [[SplashPageViewController alloc] initWithNibName:@"splashPage" bundle:nil];
    //NSLog(@"aldjksflasdfjadksaldfjsaldksfj %@", screentwo);
    screentwo.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:screentwo animated:NO];
    [screentwo release];
} else {
    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)];
    splashView.image = [UIImage imageNamed:@"Default.png"];
    [window addSubview:splashView];
    [window bringSubviewToFront:splashView];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:window cache:YES];
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
    splashView.alpha = 0.0;
    //splashView.frame = CGRectMake(-60, -60, 440, 600);
    [UIView commitAnimations];
}
}
下面是错误:

-[TableViewAppDelegate presentModalViewController:animated:]: unrecognized selector sent to instance 0x4e3e860
TableView[15309:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TableViewAppDelegate presentModalViewController:animated:]: unrecognized selector sent to instance 0x4e3e860'
*** Call stack at first throw:
(
0   CoreFoundation                      0x00fccbe9 __exceptionPreprocess + 185
1   libobjc.A.dylib                     0x011215c2 objc_exception_throw + 47
2   CoreFoundation                      0x00fce6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3   CoreFoundation                      0x00f3e366 ___forwarding___ + 966
4   CoreFoundation                      0x00f3df22 _CF_forwarding_prep_0 + 50
5   TableView                           0x00002b02 -[TableViewAppDelegate applicationDidFinishLaunching:] + 473
6   UIKit                               0x002e6253 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1252
7   UIKit                               0x002e855e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
8   UIKit                               0x002f2db2 -[UIApplication handleEvent:withNewEvent:] + 1533
9   UIKit                               0x002eb202 -[UIApplication sendEvent:] + 71
10  UIKit                               0x002f0732 _UIApplicationHandleEvent + 7576
11  GraphicsServices                    0x0186fa36 PurpleEventCallback + 1550
12  CoreFoundation                      0x00fae064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
13  CoreFoundation                      0x00f0e6f7 __CFRunLoopDoSource1 + 215
14  CoreFoundation                      0x00f0b983 __CFRunLoopRun + 979
15  CoreFoundation                      0x00f0b240 CFRunLoopRunSpecific + 208
16  CoreFoundation                      0x00f0b161 CFRunLoopRunInMode + 97
17  UIKit                               0x002e7fa8 -[UIApplication _run] + 636
18  UIKit                               0x002f442e UIApplicationMain + 1160
19  TableView                           0x000027f6 main + 84
20  TableView                           0x00002799 start + 53
21  ???                                 0x00000001 0x0 + 1
)
terminate called after throwing an instance of 'NSException'
  • 数据库不是零
也许我用那种方法做不到。谁知道呢。感谢您的帮助<库尔顿

首先
睡眠(5)
是个坏主意,应该避免在主线程上使用sleep(最好不要在任何地方使用它)

似乎您将所有代码都放在一个文件(主应用程序委托)中,并且它也是tableview委托?这就是为什么你有如此混乱的代码,试着把逻辑分成两组

例如,您可以在导航控制器的帮助下显示模态视图:

[[self navigationController] presentModalViewController:modalViewController animated:YES];
并使用

[self.navigationController dismissModalViewControllerAnimated:YES];

在iOS中,您可以通过从当前视图控制器显示模式视图的控制器以模式显示视图。所以您以前加载过任何视图控制器。

谢谢,它成功了!是的,我知道它在两个地方。我正在把它移过去,打算在另一个地方删除它。