スタートアップ時にモーダルのUITableViewを使用して、パスワードなどの設定をしていないユーザーに質問したいと思います。しかし、uitableviewを呼び出すコマンドは、viewDidLoadの内部では機能していないようです。起動時にpresentModalViewControllerを使用できますか?
スタートアップコード:
- (void)viewDidLoad {
rootViewController = [[SettingsController alloc]
initWithStyle:UITableViewStyleGrouped];
navigationController = [[UINavigationController alloc]
initWithRootViewController:rootViewController];
// place where code doesn't work
//[self presentModalViewController:navigationController animated:YES];
}
ボタンにより、後で呼び出されたときしかし、同じコードが正常に動作します:
- (IBAction)settingsPressed:(id)sender{
[self presentModalViewController:navigationController animated:YES];
}
関連質問:どのように私は(上位に)感じるんUITableViewはコマンドを使用して終了しましたか?
[self.parentViewController dismissModalViewControllerAnimated:YES];
viewWillAppearを試したところ、viewdidloadと同じ悪影響を受けました。私は[self presentModalViewController:navigationController animated:YES]を使用します。 applicationDidFinishLaunchingでは、私は "SIGABRT"を取得します。私はおそらくそれを間違って呼び出しているでしょう – BankStrong
'applicationDidFinishLaunching'からそれを呼び出すことはできません - それはビューコントローラではないデリゲートに属するメソッドです。ルートビューコントローラオブジェクトが必要です。しばしばXcodeによって自動的に作成されます。あなたのアプリのタイプに応じて、 'viewController'、' rootController'、または 'tabBarController'と呼ばれる合成されたプロパティを探します。 – Tim
それは不明確かもしれません(ごめんなさい!);私は 'applicationDidFinishLaunching'で' self present ...] 'を実行できませんでした。代わりに' [self.viewController present ...] 'を実行する必要があります。これはビューコントローラの名前によって異なりますオブジェクト。 – Tim