ナビゲーションベースのアプリを作成しています(ナビゲーションコントローラーに埋め込まれたビューはほとんどありません)。たとえば、前のビュー(ビューA)のビューBの内側からtitleプロパティを取得して、NSLogアウトできるかどうか疑問に思っています。
ありがとう
ルカ
ナビゲーションベースのアプリを作成しています(ナビゲーションコントローラーに埋め込まれたビューはほとんどありません)。たとえば、前のビュー(ビューA)のビューBの内側からtitleプロパティを取得して、NSLogアウトできるかどうか疑問に思っています。
ありがとう
ルカ
はい、できます。
UINavigationControllerのviewControllers
プロパティを見てください。
これにより、ユーザーが現在見ているビューコントローラーの背後にあるビューコントローラーの配列が返されます。したがって、最後のView Controller(または、リンクしたAppleのドキュメントによると「n-2、nは配列内のアイテムの数」)を見ると、そのViewControllerのナビゲーションバーからタイトルを取得できます。
クラスA.mファイル
{
NSString *titleA = @"Khalid";
ClassB *bObj = [[ClassB alloc] init];
bObj.title = titleA;
[self.navigationController pushViewController:bObj animated:YES];
}
NSMutableArray *activeControllerArray = [self.navigationController.viewControllers mutableCopy];
ControllerA myController;
For(int i = 0, i <[activeControllerArray count], i++) {
if([[activeViewController objectAtIndex:i] isKindOfClass:[ControllerA class]) {
myController = [activeViewController objectAtIndex:i];
NSLog(@"%@",myController.title);
}
}
ViewControllerA *viewA = (ViewControllerA *)[self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-2];
NSLog(@"%@",viewA.title);