最初にいくつかのオプションを表示する単純なviewControllerをロードしてから、いくつかのボタンをクリックします。ボタンのクリックに応じて、navigationControllerまたはtabbarControllerをロードします。これどうやってするの ?
1807 次
3 に答える
2
ビューを切り替えたい場合は、ウィンドウのルートビューコントローラーを交換します。
たとえば、私のアプリでは、最初にロード画面を表示してから、ビューをログイン画面に切り替えます。
これを行うには、アプリデリゲートへの参照が必要です。その後、windowプロパティにアクセスして、ルートビューコントローラーを置き換えることができます。
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
LoginViewController *loginVC = [[LoginViewController alloc] init];
appDelegate.window.rootViewController = loginVC;
于 2012-04-25T09:15:22.310 に答える
1
simpleViewControllerで:
- (IBAction) yourButtonAction:(id)sender
{
UIViewController *Vc = [[theViewControllerYouWantToShow alloc]init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:Vc];
[self presentModalViewController:nav animated:YES];
}
編集 :
viewControllerのコンテンツを表示するための3つのオプションがあります。
上記の例のように
presentModalViewController:
viewControllerビューをsubViewとして現在のviewControllerに追加します。あなたの場合:
[simpleViewController.view addSubView:nav.view];
3.または、単純なViewControllerがナビゲーションルートviewControllerである場合は、他のviewControllerをそのナビゲーションスタックにプッシュできます。
于 2012-04-25T08:45:32.410 に答える
1
appdelegate.hで
@property (strong, nonatomic) id<UIApplicationDelegate>delegate;
appdelgate.mで
@synthesize delegate;
私の最初のviewControllerの.hファイルで
AppDelegate *myappDelegate;
-(IBAction)start:(id)sender;
私の最初のviewControllerの.mファイルで
-(IBAction)start:(id)sender
{
NSLog(@"Start Button is clicked");
mvc = [[MasterViewController alloc]initWithNibName:@"MasterViewController" bundle:nil];
myappDelegate = [[UIApplication sharedApplication]delegate];
myappDelegate.navigationController = [[UINavigationController alloc]initWithRootViewController:mvc];
myappDelegate.window.rootViewController = myappDelegate.navigationController;
[myappDelegate.window makeKeyAndVisible];
}
于 2012-04-25T10:49:58.623 に答える