2012-01-20 2 views
0

Inferis/ViewDeckライブラリhereの機能例に従おうとしています。しかし、ルートビューコントローラはロードされていますが、ログインビューには渡されません。 View Deck Choices Viewの代わりにLogin Viewを使用しています。RootViewControllerがNIBにロードされていません

APAppDelegate.h

#import <UIKit/UIKit.h> 
@class LoginController; 

@interface APAppDelegate : UIResponder <UIApplicationDelegate> 

@property (strong, nonatomic) UIWindow *window; 

@end 

APAppDelegate.m

#import "APAppDelegate.h" 
#import "RootViewController.h" 

@implementation APAppDelegate 

@synthesize window = _window; 


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    RootViewController *rootController = (RootViewController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"RootViewController"]; 
    self.window.rootViewController = rootController;//[[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

私はストーリーボードを使用していますので、私のためにMainStoryboardを使用していたし、彼はXIBを使用しています。 appdelegateでinitwithNibNameを試みると、RootViewControllerが存在しなかったというエラーが出ました。

RootViewController.h

#import <UIKit/UIKit.h> 

@interface RootViewController : UIViewController 
{ 

} 

@property (nonatomic, retain) IBOutlet UIView *loginView; 
@property (nonatomic, retain) UINavigationController *navController; 

@end 

RootViewController.m

#import "RootViewController.h" 
#import "IIViewDeckController.h" 
#import "LoginController.h" 
#import "SideMenuView.h" 
#import "APCustomerViewController.h" 

@implementation RootViewController 
@synthesize loginView = _loginView; 
@synthesize navController = _navController; 
- (void)viewDidLoad 
{ 
    NSLog(@"RootViewController viewDidLoad"); 
    [super viewDidLoad]; 

    // Override point for customization after application launch. 
    LoginController *loginController = [[LoginController alloc] initWithNibName:@"LoginController" bundle:nil]; 

    self.navController = [[UINavigationController alloc] initWithRootViewController:loginController]; 
    self.navController.navigationBar.tintColor = [UIColor darkGrayColor]; 

    self.navController.view.frame = self.loginView.bounds; 
    [self.loginView addSubview:self.navController.view]; 
    NSLog(@"End RootViewController viewDidLoad"); 
} 

LoginController.h

#import <UIKit/UIKit.h> 
@class KeychainItemWrapper; 
@class DataClass; 

@interface LoginController : UITableViewController <UITextFieldDelegate> 
{ 
    IBOutlet UITextField *userField; 
    IBOutlet UITextField *passwordField; 
    IBOutlet UISwitch *saveLogin; 
    UIActivityIndicatorView *activitySpinner; 
    KeychainItemWrapper *keychain; 
    DataClass *dataObj; 

    id delegate; 
} 

@property (nonatomic, retain) IBOutlet UITextField *userField; 
@property (nonatomic, retain) IBOutlet UITextField *passwordField; 
@property (nonatomic, retain) IBOutlet UISwitch *saveLogin; 
@property (nonatomic, retain) id delegate; 

@end 

LoginController.m

- (void)viewDidLoad 
{ 
    NSLog(@"LoginController viewDidLoad"); 
    [super viewDidLoad]; 
    [userField setDelegate:self]; 
    [passwordField setDelegate:self]; 
    TextFieldDelegate *myDelegate = [[TextFieldDelegate alloc] init]; 
    [self setDelegate:myDelegate]; 
    //set the delegate's currentViewController property so that we can add a subview to this View. 


    activitySpinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    activitySpinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); 
    activitySpinner.center = self.view.center; 
    [self.view addSubview:activitySpinner]; 

    keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"APLogin" accessGroup:nil]; 
    [userField setText:[keychain objectForKey:(__bridge id)kSecAttrAccount]]; 
    [passwordField setText:[keychain objectForKey:(__bridge id)kSecValueData]]; 

    if ([userField text] != @"" && [passwordField text] != @"") { 
     [saveLogin setOn:YES]; 
    } 

    dataObj = [DataClass getInstance]; 

    // Do any additional setup after loading the view from its nib. 
} 

ログファイル

GNU gdb 6.3.50-20050815 (Apple version gdb-1708) (Thu Nov 3 21:59:02 UTC 2011) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "x86_64-apple-darwin".sharedlibrary apply-load-rules all 
Attaching to process 18487. 
2012-01-20 11:56:11.586 Appointment-Plus[18487:f803] RootViewController viewDidLoad 
2012-01-20 11:56:11.589 Appointment-Plus[18487:f803] End RootViewController viewDidLoad 

私はストーリーボードニブクラスファイルと同じですべての私のクラス名を持っています。ご覧のとおり、RootViewController viewDidLoadは完全に実行されていますが、LoginControllerはまったく実行されていません。私はRootViewControllerから実行するLoginControllerを取得しようとしています。

私の究極の目標は、一部のページだけでスライドアウトされるFacebookのスタイルメニューを取得することです。メニューを使用するページは、LoginControllerの後にあります。

1)ユーザーは、アプリを開いて、ログイン・ページに 2)ユーザログを取得し、FacebookのIOSスタイルのメニュー 3)ユーザーが項目をクリックすると、それは新しいページに行くことができるとのメインページを取得しますサイドメニューはありません。

これをすべて管理するにはRootViewControllerが必要です。

答えて

0

私はライブラリを使用しないことにして、ルートビューコントローラを使用して自分のスライドメニューを作成しました。

関連する問題