我正在构建一个基于导航的应用程序(导航控制器中嵌入的视图很少)。我想知道是否可以从前一个视图(视图 A)的视图 B 内部获取 title 属性,然后将其 NSLog 输出!
谢谢
卢卡
我正在构建一个基于导航的应用程序(导航控制器中嵌入的视图很少)。我想知道是否可以从前一个视图(视图 A)的视图 B 内部获取 title 属性,然后将其 NSLog 输出!
谢谢
卢卡
是的你可以。
查看 UINavigationController 的viewControllers
属性。
这将返回用户当前正在查看的视图控制器的数组。因此,查看最后一个视图控制器(或“n-2,其中 n 是数组中项目的数量”,根据我为您链接的 Apple 文档),您可以从该视图控制器的导航栏中获取您的标题。
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);
A 类 .m 文件
{
NSString *titleA = @"Khalid";
ClassB *bObj = [[ClassB alloc] init];
bObj.title = titleA;
[self.navigationController pushViewController:bObj animated:YES];
}