タブが動的に追加された TabBar Controller があります。タブの追加は簡単です。[self viewControllers]
配列を取得し、新しいビュー コントローラーを追加し、それを使用[self setViewControllers]
して TabBar を更新するだけです。ここで、追加されたビュー コントローラーの 1 つでボタンを押して、TabBar から削除できるようにしたいと考えています。
削除する一致を見つけるためself
に、追加されたView Controllerと配列を比較するにはどうすればよいですか?[[self tabBarController] viewControllers]
重複する可能性があるため、タブのタイトルを使用できません。項目と比較self
してみましたが、実は[self parentViewController]
配列に入っています。parentViewController
「その他」メニューでビューを開いたときparentViewController
は、「その他」ビューコントローラーなので使用できません。tag
ビューの直接の親にあるなどの情報にアクセスする方法がわかりません。
どんなヒントでも素晴らしいでしょう、そして前もって感謝します!
例として、これが私の現在のコードです。機能しますが、タブが「その他」メニューにある場合は機能しません。これは、TabBar の View Controller のボタンが押されたときに実行されます。
NSMutableArray *temp = [[NSMutableArray alloc] initWithArray:[[self tabBarController] viewControllers]];
for (int i = 0; i < [temp count]; i++)
{
UIViewController *test = [temp objectAtIndex:i];
if (test == [self parentViewController])
{
[temp removeObject:test];
break;
}
}
[[self tabBarController] setViewControllers:temp];