0

UIToolbarアプリケーションの起動時に必要です。アプリケーション全体のすべての画面に表示されます。そのために私はそれを追加しましたRootViewController

#import "AppDelegate.h"
#import "MainViewController.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize mainViewController = _mainViewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];
// Override point for customization after application launch.
self.mainViewController = [[[MainViewController alloc]init]autorelease];
self.window.rootViewController = self.mainViewController;
[self.window makeKeyAndVisible];
return YES;
}

現在、私は持っていますUIToolbar in MainViewController

 // create the UIToolbar at the bottom of the MainViewController
toolbar = [UIToolbar new];
toolbar.barStyle = UIBarStyleBlackOpaque;
// size up the toolbar and set its frame
toolbar.frame = CGRectMake(0, 425, 320, 40);
[self.view addSubview:toolbar];

私の他のすべてのUIViewControllersイムでは、このように追加しています

[self.view addSubview:toolbar]; 

私はしたくない。にアタッチした後UIToolbar、他のすべてに自動的に表示したい。ひっくり返して別のものに変わるように。のみ反転する必要があります。現在は で反転しています。それが私がそれをに付けたい理由です。UIViewControllersrootviewcontrollerUIViewControllerUIViewControllerUIViewControllerUIToolbarUIToolbarUIViewControllerrootviewcontroller

では、どうすればUIToolbar in APPDelegateファイルを追加してに添付できますかrootviewcontroller

手伝ってくれてありがとう。

4

3 に答える 3

2

UIToolbar を作成するときを除いて、コードではすべて問題ないように見えます。何らかの理由で、その時点で独自の構文を作成します。これは、UIToolBar を作成する方法です。

例:

UIToolbar *toolBar = [UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44);

真剣に、コードはコンパイルされず、正確にどの行であるかがわかります。ドットと Google を接続して UIToolbar を作成する方法。

編集:

ツールバーをすべてのビューに表示するには、いくつかのオプションがあります。

(1) 本当に UINavigationController と UINavigationBar が不要ですか?

(2) UIWindow にアタッチします (つまり、ウィンドウに 2 つのサブビューを追加します)。これはコードで作成する必要があります。インターフェイス ビルダーが機能するとは思えません。

(3)各ビューが(initまたはviewDidLoadメソッド)で読み込まれるときに作成するだけです

さて、ツールバーを各View Controllerに追加する必要があります(つまり、addSubView)。他の唯一の方法は、AppDelegate に 2 つの subView を追加することです。

于 2012-05-19T21:52:52.897 に答える
1

UIToolbarではなくUIViewControllerのみが反転する必要があります。現在、UIToolbarもUIViewControllerで反転しています。それが私がそれをrootviewcontrollerに接続したい理由です。

これを行うには2つの方法が考えられます。

  1. ナビゲーションコントローラーが提供するツールバーを使用します。そのツールバーに直接アクセスしようとしないでください。UIViewControllerの-setToolbarItems:animated:メソッドを使用して、各ViewControllerに必要な項目を設定してください。各ViewControllerに同じツールバー項目のセットを指定すると、目的の外観が得られます。簡単な実験でわずかなちらつきに気づきましたが、これはすべてのビューの標準ツールバーを取得するための非常に迅速で簡単な方法です。

  2. 独自のコンテナコントローラを作成します。iOS 5の導入により、独自のコンテナーコントローラー、つまりUINavigationControllerやUITabBarControllerと同じように、他のビューコントローラーを内部でホストできるビューコントローラーを作成できるようになりました。したがって、独自のコンテナを簡単に作成して、ツールバーをホストさせることができます。これはあなたがすでにやろうとしていることのように聞こえますが、その機能が自動的に取得されないことを理解する必要があります。

于 2012-05-19T23:50:24.847 に答える
1

私はあなたが言うことを信じていません

toolbar = [UIToolbar new];

また、プログラムで UIToolbar を作成する方法をグーグルで検索しましたか?

于 2012-05-19T21:29:05.257 に答える