2012-10-25 35 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

相關問題