在我的编程“容量”中遇到问题和“未命中”。 我有一个tableview控制器,其中一些数据是从json解析的。 当您选择“新闻”时,您将进入包含所有数据的详细信息视图。
一切都还可以,但我添加了“检查”如果您已登录或未登录。 如果没有,您将被“重定向”到登录屏幕。
我尝试用segue(模态)来做。它正在发挥作用,但是当我这样做时,我的“导航”就会被打破,就好像他“迷失”了他的道路一样。
我尝试以编程方式执行此操作:
LoginViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.navigationController pushViewController:controller animated:YES];
但是当我这样做的时候,什么也没发生,我的“详细视图控制器”加载没有重定向
并获得该日志:
嵌套推送动画可能导致导航栏完成损坏 在意外状态下进行导航转换。导航栏 子视图树可能已损坏。
有人对我有暗示吗? 感谢
答案 0 :(得分:1)
LoginViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.navigationController pushViewController:controller animated:YES];
在故事板中,你已经拥有了推送信号,&再次你推动loginviewcontroller。这就是为什么你得到“嵌套推动画”警告。
答案 1 :(得分:0)
这不是正常的做法。您通常会以模态方式显示该登录视图控制器。
如果这是您想要的方式,您可以使用以下步骤来完成:
1)将DetailViewController连接到TableViewController(不是来自单元格本身,而是来自黄色图标,代表底部黑条的ViewController)。如果您愿意,请选择推送并将标识符添加到该Segue(例如,“DetailSegue”)
2)将LoginViewController连接到TableViewController,就像连接DetailViewController并将标识符添加到该segue一样(例如,“LoginSegue”)。
现在,当用户点击某个单元格时,您希望检查会话是否仍处于活动状态,如果是,您将执行[self performSegueWithIdentifier:@"DetailSegue" sender:self];
,如果不是,则执行[self performSegueWithIdentifier:@"LoginSegue" sender:self];
< / p>
希望这会有所帮助,欢呼。
答案 2 :(得分:0)
要理解你想做什么很难,问题不太明确。
如果您想链接到故事板中的场景,请通过ctrl + click&amp; amp;创建一个segue。从初始场景拖动,然后给segue一个ID(通过单击segue并使用检查器设置ID来执行此操作)
然后在你的tableview控制器中,你在哪里拿起你的标签(假设这是在tableview委托方法中),你可以以编程方式调用segue
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self performSegueWithIdentifier:@"YOURSEGUEID" sender:self];
}