私はUITabBarで2 UIViewControllersを持っていると私のUIViewControllersの1のためのファサードを作成したい、とこれを実行しようとしたときの問題に実行しています:Objective-Cは、別のUIViewControllerからメソッドを呼び出します。
//within the 2nd view controller, that has not been displayed yet:
-(void)startApp
{
locationManager.delegate = self;
[locationManager startUpdatingLocation];
}
私は
//within the first view controller:
[delegate startApp]
をしようとしています
上記の例で「自己」とは何を指していますか?ブレークポイントを設定すると、2番目のビューコントローラ内のコールバックが呼び出されるのがわかりますが、2番目のビューコントローラから直接呼び出すときと同じ効果はありません。
2番目のView Controller内のViewDidLoadは、そのコントローラをタップするまで呼び出されませんが、その場合でも、startAppメソッドを呼び出しても結果は予期しないものです。
私はセットアップでMVCモデルを壊してしまい、コードの一部を取り出して、両方のコントローラが使用するモデルを作成する必要がありますが、私は迅速で汚れたソリューションを望んでいました。
ありがとうございます。
ありがとうございました!私が遭遇した問題はUIViewControllerが初期化されていることですが、ユーザーはそのタブを一度も選択していないため、-viewDidLoadは一度も呼び出されていません。 –