1

UINavigationControllerクラスの継承とプロパティの割り当てrootViewController(またはメソッドの使用)の違いは何initWithRootViewController:ですか?

私はこれについて少し混乱しています。UINavigationControllerの以下のコード継承を検討してください。

@interface NativeViewController : UINavigationController
{

}

ここで、initWithRootViewControllerを使用した以下のコードを検討してください。

UINavigationController *viewController = nil;
if (self) {
    NativeViewController *vc = [[NativeViewController alloc] initWithNibName:@"NativeViewController" bundle:nil];
    viewController = [[UINavigationController alloc] initWithRootViewController:vc];
    [vc autorelease];
}
return viewController;

最初のケースのように継承を使用する場合とinitWithRootViewController:メソッドを使用する場合??

rootViewController相続の場合、財産はどうなりますか?

同じ質問がUITabbarControllerクラスについてです。

4

2 に答える 2

2

1つ目はカスタマイズ用UINavigationControllerです。一方、2つ目は、UINavigationController最初のビューコントローラを含むを初期化するためのものです。たとえば、UINavigationControllerそれ自体がsをナビゲートするための単なるプレースホルダーですUIViewController

rootViewControllerの継承の場合でも入れておく必要がありUINavigationControllerます。

于 2013-03-11T07:38:59.540 に答える
1

コンテナ(UINavigationController、UITabBarController)をサブクラス化するのは、UIAppearanceまたはデリゲートメソッドによって提供されないコンテナの機能または外観を制御する必要がある場合のみです。

他のすべての場合(大部分)、ルートビューコントローラーまたはviewControllersプロパティを設定します。基本的な機能を提供するためにサブクラス化する必要はありません。これらはコンテナです。ほとんどのUIは子ビューコントローラから取得されます。

于 2013-03-11T07:28:16.860 に答える