Jes*_*ala 1 objective-c ipad uisplitviewcontroller screen-rotation ios
我有一个带有2个初始控制器的SplitViewController应用程序:
我的rightViewController(详细信息)有splitViewController的委托,用于显示显示/隐藏我的菜单的按钮(主)
我的leftViewController(master)是一个菜单应用程序,当我选择menú的任何元素时,我触发了一个连接到我的master的segue,它替换了我的detailViewController用于所选择的菜单元素
当我这样做,如果我尝试将我的iPhone旋转为隐藏菜单,我的应用程序崩溃并说:
*** -[rightViewController respondsToSelector:]: message sent to deallocated instance
Run Code Online (Sandbox Code Playgroud)
我想这是因为我的splitViewController想要与它的委托,它的旧rightViewController进行通信,但是它已经消失了,它已被我的视图所取代,
也许我需要:
将我的委托重新分配给我的新viewController(详细信息)或删除我的rightViewController的委托并将其分配给我的newViewController
也在我的新viewController中试过这个:
@interface newViewController ()<UISplitViewControllerDelegate>
@end
@implementation newViewController
- (void)viewDidLoad
{
UISplitViewController *splitViewController = (UISplitViewController *)self.view.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
}
...
@end
Run Code Online (Sandbox Code Playgroud)
但仍然没有工作...我得到了同样的信息
我该如何解决???
提前致谢
编辑:添加我的segue代码,以帮助回答我的问题
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"viewSceneAgenda"]) {
[segue.destinationViewController setTitle:@"Citas"];
[segue.destinationViewController setUserIDElement:UID_CUS];
[segue.destinationViewController setOverallAppointments:overallDates];
}
}
Run Code Online (Sandbox Code Playgroud)
也许你必须按照你对newViewController的说法传递你的委托...为什么不在你的leftViewController(master)中添加它...
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"showNewViewControllerScene"]) {
UISplitViewController *splitViewController = (UISplitViewController *)self.view.window.rootViewController;
splitViewController.delegate = segue.destinationViewController;
}
}
Run Code Online (Sandbox Code Playgroud)
只需将故事标识符(showNewViewControllerScene)替换为与故事板上的标识符匹配
| 归档时间: |
|
| 查看次数: |
636 次 |
| 最近记录: |