4

ここで採用された iOS アプリを持つ Noobie iOS 開発者。

iOS アプリの設定部分があり、ユーザーが完了をクリックすると、モーダル ビュー コントローラーが必要になり (現在はそうです)、presentingViewController で updateMainUI という関数を呼び出したいと考えています。

私が呼び出しているメソッドは次のとおりです。

- (void)done:(id)sender
{
  [[self presentingViewController] dismissViewControllerAnimated:YES completion:nil]; // works 
  [[self presentingViewController updateMainUI]; //doesn't work

しかし、次のエラーが表示されます。

No visible @interface for 'UIViewController' declares the selector 'updateMainUI'

しかし、私は提示コントローラでこれを宣言しました

@interface LocationsViewController : UITableViewController <CLLocationManagerDelegate, UISearchBarDelegate, UISearchDisplayDelegate>
-(void)updateMainUI;

しかし、提示しているコントローラーが UITableViewController である場合、エラーが UIViewController に関するものであることは奇妙です。

updateMainUI を機能させる方法についてのアイデアはありますか? そして、私は何を間違っていますか?

どうも

編集#1 これは私がこれを作成する方法です-* NearbyViewControllerへの参照を取得する方法はありますか?

UIViewController *nearbyViewController = [[LocationsViewController alloc] initWithNearbyLocations];
UINavigationController *nearbyNavigationController = [[UINavigationController alloc] initWithRootViewController:nearbyViewController];
...
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:nearbyNavigationController, browseNavigationController, eventsNavigationController, nil];
4

3 に答える 3

4

それらを却下した後、あなたはなるselfことが期待されるべきです。解約する直前に電話してみてください。self.presentingViewControllernilupdateMainUI

于 2012-05-12T02:47:13.160 に答える
1

Crud、私は今本当の答えを見ています。キャストの問題です。これを試して:

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil];
[(LocationsViewController *)[self presentingViewController] updateMainUI];

が LocationsViewController 型のオブジェクトを返すことを十分に確認する必要があります-presentingViewController。そうしないと、より大きな問題が発生します。

于 2012-05-12T04:39:15.163 に答える
0

[[self presentingViewController updateMainUI]壊れていてコンパイルできません。あなたが意図したと仮定すると[[self presentingViewController] updateMainUI]、それを行う他の方法があります。

LocationsViewController *presenting = (LocationsViewController *)[self presentingViewController];
[presenting dismissViewControllerAnimated:YES completion:^{
    [presenting updateMainUI];
}];

変数提示の使用は重要なステップです。

于 2012-05-12T02:55:53.120 に答える