1

MBProgressHUDを使用して、アプリで Waiting Dialog を使用しようとしています。

アプリにボタンがあります。ユーザーがそれをクリックすると、別の viewController に移動します。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ViewController2 *yourViewController = (ViewController2 *)[storyboard instantiateViewControllerWithIdentifier:@"FavoritePage"];
[self.navigationController pushViewController:yourViewController animated:YES];

から設定することもできますinterface builder

問題は、次のページが読み込まれるまで少し時間がかかることです。この期間に待機中のダイアログを表示したい:

- (IBAction)navigation:(id)sender {
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    ViewController2 *yourViewController = (ViewController2 *)[storyboard instantiateViewControllerWithIdentifier:@"FavoritePage"];
    [self.navigationController pushViewController:yourViewController animated:YES];
}

しかし、それは機能しません。

ナビゲーションに関連するコードを削除して、これを使用すると:

[MBProgressHUD showHUDAddedTo:self.view animated:YES];

待機中のダイアログが表示されるのですが、ナビコードとこの行を使用すると、待機中のダイアログが表示されず、ナビゲーションが機能します。

どうすればそれらを連携させることができますか?

待機ダイアログを非表示にするためにそれを追加したいだけです。これも持っています:

- (void) viewDidDisappear:(BOOL)animated {
    [MBProgressHUD hideHUDForView:self.view animated:YES];
}
4

2 に答える 2

1

それ以外の、

- (IBAction)navigation:(id)sender {
    [MBProgressHUD showHUDAddedTo:self.view animated:YES];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    ViewController2 *yourViewController = (ViewController2 *)[storyboard instantiateViewControllerWithIdentifier:@"FavoritePage"];
    [self.navigationController pushViewController:yourViewController animated:YES];
}

試す、

- (IBAction)navigation:(id)sender {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    ViewController2 *yourViewController = (ViewController2 *)[storyboard instantiateViewControllerWithIdentifier:@"FavoritePage"];
    [self.navigationController pushViewController:yourViewController animated:YES];
    [MBProgressHUD showHUDAddedTo:self.navigationController.view  animated:YES];
}

または、のshowHUDAddedToメソッドにメソッドを追加する必要があります。ViewController2viewWillAppear

于 2012-10-23T04:28:07.007 に答える
0

- (IBAction)navigation:(id)sender {} 最初に を表示してMBProgressHUDから にプッシュするため、問題はあなたにあると思いますViewController2。で、 が表示されましたが、それで MBProgressHUD新しいビューにもプッシュします。

待機サインを表示したい場合はMBProgressHUD、タイマーを使用できます。タイマーを 1.0 秒または 2.0 秒に設定します。その後、navigationメソッドを呼び出します。タイマーを無効にし、 を削除しMBProgressHUDます。

または、使用できます

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(yourMethod) name:@"notificationName" object:nil];

`- (IBAction)navigation:(id)sender {} で。

`NSNotificationのような別のビューからこれを呼び出します[[NSNotificationCenter defaultCenter] postNotificationName:@"notificationName" object:nil];

于 2012-10-23T04:17:18.960 に答える