0

単一のビュー ベースのアプリケーションを作成しました。必要に応じて UIViewControllers をオーバーレイしたかったのです。たとえば、モーダル ビューのように、いくつかの値が入力された場合、そこで何かをして戻ってくるまで次のビューをロードします。

これは私が持っているコードです

- (void) viewWillAppear:(BOOL)animated {

    NSMutableDictionary *tempPrefs = [prefsController readPrefs];
    NSString *tempName = [tempPrefs objectForKey:@"Name"];
    NSString *tempProduct = [tempPrefs objectForKey:@"Product"];


// usedbefore so skip first view (first view == login view
    if ((tempName.length != 0) && (tempProduct.length != 0)) {
        // you have values, enter new room without checking
        [self loadGetProListViewController];
    }
}

- (void) loadGetProListViewController {

    [self dismissViewControllerAnimated:NO completion:nil];
    getProListViewController = [[GetProListViewController alloc] initWithNibName:@"GetProListViewController" bundle:nil];
        [self presentViewController:getProListViewController animated:YES completion:nil];

}

ただし、このメソッドに到達すると実行されますが、何も起こりません..

モーダルviewControllerの作成方法や説明を教えていただければ幸いです。

4

2 に答える 2

0

最初に、UIViewController のライフサイクルを認識して、さまざまな要素を提示できる場所を把握する必要があります。UIViewController

また、アーキテクチャが少し間違っていると思います(おそらく私が間違っているかもしれません)。

-viewDidAppear メソッドを提示する firstViewController があるとします。getProListViewController

中級者firstViewControllerを出すって変だと思いませんか?

if条項をレベルアップするために移動していただければと思います。鉄:

/ usedbefore so skip first view (first view == login view
if ((tempName.length != 0) && (tempProduct.length != 0)) {
   // present your getProListViewController
} else {
   // present your "FirstViewController" (login or whatever)
}

そして、あなたは最初から問題に直面していません

于 2013-09-25T10:24:49.620 に答える