2012-01-23 5 views
1

私のiOSアプリケーションのセットアップでは、トップレベルオブジェクトで宣言された汎用オブジェクト(UniversalObjと呼ぶことができます)があります。 (私の場合はSampleAppDelegate)この中でXcodeトップレベルオブジェクトからオブジェクトを取得

、私はSampleAppDelegateで私はUniversalObjへのアクセスを許可する2 UIViewController

を含むUITabBarControllerを持って、私はそれにUniversalObjを渡すために、以下を試してみました:。

MyViewController *vc = (MyViewController *) [self.tabBarController.viewControllers.objectAtIndex:0]; 
[vc setMyObj:self.universalObject]; 

これに伴う問題は、私はこれを行うと、時々、ビューはまだそれほどMyViewController.myObj==nullロードされていないことである。

今、SampleAppDelegate(タイプNSObject)のMyViewControllerにアクセスしようとしています。私は***self.parentViewController***を使用してUITabBarControllerに行くことができますが、私はSampleAppDelegateに到達する方法がわかりません。

UniversalObjにアクセスするにはSampleAppDelegateからMyViewControllerにアクセスするにはどうすればよいですか? MyViewControllerself.parentViewController行をSampleAppDelegateに変更するにはどうすればよいですか?それとももっと良い方法がありますか?

ご協力いただきありがとうございます。

Guvvy

答えて

0

[self setMyObj:[(SampleAppDelegate *)[UIApplication sharedApplication].delegate universalObj]]; 
1

あなたは-[UINib instantiateWithOwner:options:]を使用します。私は、このようMyViewControllerからオブジェクトにアクセスすることができたことがわかっ

NSArray * topLevelObjects = [nib instantiateWithOwner:pwner options:options]; 
+0

ありがとう!しかし、どのようにしてUINibオブジェクトを取得できますか? '[UINib alloc]'を使って作るだけですか? 'owner'パラメータには何を指定する必要がありますか?それはちょうど 'self.parentViewController'ですか? – Gavy

+0

@Guvvy a + b) '+ [UINib nibWithNibName:bundle:]'が一般的な方法です。 c)ここにロードされている実際のペン先に基づいて、ファイル所有者とは何かを判断する必要がありますか?これは既存のオブジェクト/インスタンスまたは新しいインスタンスに対応していますか? – justin

+0

私は別の方法でそれを理解しましたが、助けてくれてありがとう! – Gavy

関連する問題