2011-07-04 25 views
2

私はプログラミングが初めてで、私の問題はこれです。メインビューの変更方法はナビゲーションベースのアプリです!

私は、アプリケーションの起動時にSQLiteデータベースからのデータをテーブルに表示するナビゲーションベースのアプリケーションを持っています。私は、別のメインビューを持って、ユーザーがタブメニューのボタンを押したときにデータを表示するテーブルを持っていたいと思います。

私はこれを達成するための情報やチュートリアルを見つけることができませんでした。誰も私を正しい方向に向けることができますか?

ありがとうございました。

答えて

3
  1. 表示する必要があるクラスを作成します。 LoginViewという名前のクラスを作成したとします。

    // Add the navigation controller's view to the window and display. 
    [window addSubview:navigationController.view]; 
    [window makeKeyAndVisible]; 
    
  2. ちょうどステップ2に記載されたコードの上に次の行を追加します:

    LoginView *logView = [[LoginView alloc] initWithNibName:@"LoginView" bundle:nil]; 
    [self.navigationController pushViewController:(UIViewController *)logView animated:YES]; 
    
  3. あなたは、ナビゲーションベースのアプリケーションを作成する

  4. は、 AppDelegateクラスは、次のコードが含まれています AppDelegateクラスに以下の関数または類似の関数を追加します。これにより、 LoginViewビューが非表示になり、コントローラクラス rootViewが表示されます。

    -(void) LoginSuccess 
    { 
        // Add the navigation controller's view to the window and display. 
    
        [self.navigationController popViewControllerAnimated:YES]; 
    
        RootViewController *rootView = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil]; 
        [self.navigationController pushViewController:(UIViewController *)rootView animated:YES]; 
    
        [window addSubview:navigationController.view]; 
        [window makeKeyAndVisible]; 
    } 
    
  5. 下記の機能と同様LoginViewクラスの機能を追加します。示すように、ステップ4で説明した関数を呼び出します。

    -(IBAction) OpenNavigation 
    { 
        TestNavgAppDelegate *pApp = [[UIApplication sharedApplication] delegate]; 
        [pApp LoginSuccess]; 
    } 
    
  6. をしたい場合は、[戻る]ボタンを非表示にするviewDidLoad方法RootViewコントローラに次のコードを追加します。

    [super viewDidLoad]; 
    
    self.navigationItem.backBarButtonItem = NULL; 
    self.navigationItem.hidesBackButton = YES; 
    

すべてのベスト。

+0

ありがとうございました。それはショットを与えるだろう! – wayne

+0

詳細が必要な場合はお知らせください。このアプローチがうまくいけば、それを答えとして受け入れてください。 –

1

NaviagtionベースのアプリケーションからTabbarベースのアプリケーションに切り替えるだけです。

STEP 1]開きMainWindow.xibとアプリケーションデリゲートでUITabbarController STEP 2]とnavigationcontroller置き換え

UITabBarController* tabBarController; 

可変

UINavigationController *navController; 

を交換

@interface ViewTestAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    UINavigationController *navController; 
} 

@property (nonatomic, retain) IBOutlet UINavigationController *navController; 
@property (nonatomic, retain) IBOutlet UIWindow *window; 
すなわち

@interface ViewTestAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
    UITabBarController* tabBarController; 
} 

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 
@property (nonatomic, retain) IBOutlet UIWindow *window; 

したがって、同様のプロパティでも同様に更新されます。Mファイル

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法で

[self.window addSubview:tabBarController.view]; 

とコード

[self.window addSubview:navController.view]; 

を置き換えます。

すべての操作は、ナビゲーションコントローラをタブバーコントローラに置き換えたものです。 enter image description here

enter image description here

あなたが適切なコンセントに接続した後にすべてを行う必要が所望のビューコントローラを割り当てることである(あなたがSQLiteデータベースからのデータを表示するために以前使用していたビューを再使用することができる)選択されたビューコントローラとしてTableviewでロードされた最初のビューになるTabbarControllerの場合。

これはすべて次のようになります。 enter image description here

関連する問題