【发布时间】:2014-05-17 13:14:27
【问题描述】:
如何以编程方式从我的第一个视图控制器更改为我的第二个视图控制器,它在情节提要中链接到情节提要中的第一个?
我的 iPad 故事板有一个标签栏控制器作为“初始视图控制器”, 它通过“关系序列视图控制器”链接 导航控制器,它通过“根视图”链接链接到视图控制器 A,它有一个 UIButton,它通过“手动序列推送”链接到视图控制器 B。
Tab Bar Cntrl => Navigation Cntrlr ==(root view)==> View Cntrl A, UIButton ==(push)==> View Cntrl B
因此,当运行时,显示视图控制器 A,按下其 UIButton 会导致视图更改为视图控制器 B。
View Controller A 上的 UITableView 单元格上还有另一个 UIButton。当我按住此按钮时,UILongPressGestureRecognizer 的委托触发正常,我现在需要 View Controller B 作为视图。
那么如何从视图控制器 A 更改为视图控制器 B? 在 VC B 打开的情况下,如何改回 VC A?
响应长按的代表............ - (void)schedule_long_press_delegate:(UILongPressGestureRecognizer *)recognizer { 如果(recognizer.state == UIGestureRecognizerStateEnded){ printf("长按结束 .................... \n");
// Get storyboard:
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad"
bundle: nil];
printf("mainStoryboard = %x \n", (int)mainStoryboard ); // !!! ax
// Get nav controller for MANAGE view:
UINavigationController *MANAGE_UINavigationController = (UINavigationController*)[mainStoryboard
instantiateViewControllerWithIdentifier: @"MANAGE_Storyboard_ID"];
printf("MANAGE_UINavigationController = %x \n", (int)MANAGE_UINavigationController ); // !!! ax
// Get MANAGE view's view controller:
SCHEDULE_UIViewController *schedule_UIViewController = [self.storyboard instantiateViewControllerWithIdentifier:
NSStringFromClass([SCHEDULE_UIViewController class])];
printf("schedule_UIViewController = %x \n", (int)schedule_UIViewController ); // !!! ax
// Change screen to MANAGE view:
[MANAGE_UINavigationController pushViewController: schedule_UIViewController animated:YES];
}
else {
printf("Long press detected ..................... \n");
}
}
故事板设置: UITabBarController ...情节提要 ID 为空白。 ..链接到: UINavigationController ... Class=UINavigationController StoryboardID = "MANAGE_Storyboard_ID" ..链接到: UIViewController ... Class=acc StoryboardID 为空白(初始视图) ..链接到: UIViewController ... Class & StoryboardID = "SCHEDULE_UIViewController" (TARGET VIEW)
输出:........
mainStoryboard = 1f8b4900
MANAGE_UINavigationController = 1e5d45f0
schedule_UIViewController 2 = 1e5d4b20
【问题讨论】:
标签: ios iphone objective-c uiviewcontroller uinavigationcontroller