2012-10-25 32 views
3

我为iPad做了一个splitview应用程序,我需要为登录目的显示不同的视图控制器。 我的appdelegate称这种现象为didFinishLaunchingWithOptions功能:presentViewController错误 - AppDelegate没有可见的@interface

LoginViewController *login = [[LoginViewController alloc] init]; 
[info setModalTransitionStyle: UIModalTransitionStyleCrossDissolve]; 
[self presentViewController:login animated:YES completion: nil]; 

,但我得到的错误“为AppDelegate中无可见@interface声明选择presentViewController”在第三行。

我想要显示的视图控制器设置为LoginViewController类。 我已经导入所有类。

我很新的编程,并会真正感谢任何帮助!

谢谢!

回答

1

错误消息说的是类AppDelegate不包含名为presentViewController的方法。的确,该方法属于UIViewController类。

您应该做什么取决于您如何创建项目,是否使用导航控制器,标签栏控制器或简单的视图控制器。

从您的评论,我明白你使用基于窗口的模板(或空应用程序)来创建您的项目。在这种情况下,在你application:didFinishLaunching:你应该有这样的事情:

self.login = [[LoginViewController alloc] init]; 
[self.window addSubview:self.login.view]; 

,并添加到您的AppDelegate.h以下声明:

@property (nonatomic, strong) LoginViewController* login; 

如果这似乎并不适用于你的情况,请发表您的application:didFinishLaunching:

+1

定义这是我在我的AppDelegate.h:'#进口 #进口 “LoginViewController.h” #进口 “MasterViewController.h” @interface AppDelegate:UIResponder @property(strong,nonatomic)UIWindow * window; @ end' –

+0

我在Appdelegate.h中添加了属性,这就是我现在在应用程序中所做的:didfinishlaunching:'self.login = [[LoginViewController alloc] init]; [self.window addSubview:self.login.view]; LoginViewController * login = [[LoginViewController alloc] init]; [info setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; [self presentViewController:login animated:YES completion:nil];'不知何故它仍然没有工作..感谢您的努力! –

+0

我假设你的第二个'login'(本地变量)是为了'info'(如果不是,什么'info setModalTransitionStyle'?);那么你应该这样做:'[self.login presentViewController:info animated:YES completion:nil];' - 但是你会发现这没有多大意义。如果您已经在屏幕上拥有视图控制器并且想要在其上模态显示某些内容,则可以提供一种模式;如果你没有任何东西(比如我认为你的情况),你可以简单地使用'addSubview',就是这样。在模块上显示相同的登录视图控制器本身并不是很有用。 – sergio

相关问题