背景を分けて、私はUINavigationControlledベースのブログタイプのアプリを作っています(私はiPhoneのFacebookブックアプリに最も似ていると思います)。現在アクティブなビューに関係なく、NavigationBarは、フレンドリクエストやアクティビティ通知などのタイトルエリアにいくつかのボタンを表示します。 Facebookのアプリと同じように、これらのボタンをクリックするとポップアップビューが作成されます。コードを繰り返さずにNavigationBarのタイトルビューにボタンを追加する
現在、私は信じられないほど効率が悪いと感じるようなことをしています。ロードされているすべてのビューについて、ボタンを作り直してナビゲーションバーに追加しています。私のコードは以下の通りです:
//Setup the custom middle buttons
UIView *container = [[UIView alloc] init];
container.frame = CGRectMake(0, 0, 80, 44);
// create a button and add it to the container
UIButton *notificationButton = [UIButton buttonWithType:UIButtonTypeCustom];
notificationButton.frame = CGRectMake(0, 0, 35, 44);
[notificationButton addTarget:self
action:@selector(showNotifications:)
forControlEvents:UIControlEventTouchUpInside];
[container addSubview:notificationButton];
// add another button to the container
UIButton *friendActivityButton = [UIButton buttonWithType:UIButtonTypeCustom];
friendActivityButton.frame = CGRectMake(45, 0, 35, 44);
[friendActivityButton addTarget:self
action:@selector(showFriendActivity:)
forControlEvents:UIControlEventTouchUpInside];
[container addSubview:friendActivityButton];
// Set the titleView to the container view
[self.navigationItem setTitleView:container];
[container release];
私のアプリは、複数のビューを持っており、ナビゲーションバーが常に表示されますので、その後、titleViewにそのビューを追加し、コンテナビューに追加し、ボタンを再作成に保つために愚かなようですナビゲーションコントローラの
同じ効果を達成するにはどうすればよいでしょうか?私はサブクラス化やUINavigationBarのカテゴリを作成してコンテナビューのコードを追加していました。しかし、私はこれらの場合セレクタを動作させる方法を知らなかった。 UINavigationBarカテゴリでtitleViewプロパティにアクセスする方法もわかりませんでした。
これについての助けがあれば助かります!ありがとうございました!
ありがとう、そのような簡単な解決策。私はそれについて間違っていることを知っていた! – kurisukun