推送segue时ios6崩溃

问题描述

推送segue时ios6崩溃

使用的CalculatorViewController中有一个graph按钮。点击按钮会触发segue推送到CalculaterGraphViewController 。运行之后崩溃了。

CalculatorViewController.m中的代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"Show Graphs"])
    {
        // Do we need to set something else up in case it crashes
    }
}

崩溃信息输出:

2013-07-01 18:32:13.170 Calculator[1150:c07] * Terminating app due to uncaught exception 'NSGenericException', reason: 'Could not find a navigation controller for segue 'Show Graphs'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.' * First throw call stack: (0x1c95012 0x10d2e7e 0x46cf31 0x45eb99 0x45ec14 0x10e6705 0x1a2c0 0x1a258 0xdb021 0xdb57f 0xda6e8 0x49cef 0x49f02 0x27d4a 0x19698 0x1bf0df9 0x1bf0ad0 0x1c0abf5 0x1c0a962 0x1c3bbb6 0x1c3af44 0x1c3ae1b 0x1bef7e3 0x1bef668 0x16ffc 0x2abd 0x29e5 0x1) libc++abi.dylib: terminate called throwing an exception (lldb)

解决方案

出错的原因是,你当前的控制器,并非是直接或问接继承自UINavigationController 。只有在被压入导航控制器栈中的控制器才可以推送(push) 另一个控制器(viewcontroller)

通过上面的解释,你应该知道了如果要让当前控制器可以有推送push view controller 的功能,需要当前控制器为UINavigationController,但如果不是,也有方法解决,你可以用下面的代码来将当前控制器包装成UINavigationController

UINavigationController *nav=[[UINavigationController alloc] initWithRootViewController:currentController ];
[nav pushViewController:viewcontroller animation:YES];

解决方案二:

出错的原因是,你当前的控制器,并非是直接或问接继承自UINavigationController 。只有在被压入导航控制器栈中的控制器才可以推送(push) 另一个控制器(viewcontroller)

通过上面的解释,你应该知道了如果要让当前控制器可以有推送push view controller 的功能,需要当前控制器为UINavigationController,但如果不是,也有方法解决,你可以用下面的代码来将当前控制器包装成UINavigationController

时间: 2024-11-10 07:26:55

推送segue时ios6崩溃的相关文章

ios-iOS 推送消息时直接点击桌面应用图标进入,得不到推送消息?

问题描述 iOS 推送消息时直接点击桌面应用图标进入,得不到推送消息? 推送消息的时候,点击通知的显示按钮进入应用是正常的.如果从桌面应用图标点进去 它不会调用didFinishLaunchingWithOptions方法和didReceiveRemoteNotification方法.那我就得不到它的推送内容.有人说在applicationDidBecomeActive方法里面做推送消息的响应处理,那该怎么做呢? 有没有哪位大神不吝赐教,非常感谢! 解决方案 http://www.cocoach

node apn-node-apn推送消息时513错误是什么意思?

问题描述 node-apn推送消息时513错误是什么意思? var apn=require("apn") var token = '60c3b0b7 b6c464f0 e86bf6f0 ac1fc3d3 26701bae fae89183 4c2d80d9 51811965'; //长度为64的设备Token var options = { "gateway": "gateway.sandbox.push.apple.com" ,"ce

iOS10实现推送功能时的注意点和问题总结_IOS

1.在项目 target 中,打开Capabilitie -> Push Notifications,并会自动在项目中生成 .entitlement 文件.(很多同学升级后,获取不到 deviceToken,大概率是由于没开这个选项) Capabilitie -> Push Notifications 自动生成 .entitlement 2.确保添加了 UserNotifications.framework,并 import到 AppDelegate,记得实现 UNUserNotificati

iOS推送获取不到设备token: 未找到应用程序的“aps-environment”的权利字符串

今天在调试利用腾讯出的信鸽推送系统做iOS的推送消息时,发现真机调试时提示"未找到应用程序的"aps-environment"的权利字符串",网上搜了搜原因大致是因为: APP id和mobileprovision对应不上. 按照信鸽官网的教程http://developer.xg.qq.com/index.php/IOS_%E8%AF%81%E4%B9%A6%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97我已经成功配置好了APP ID,但是

Android推送服务:百度云推送

一.推送服务简介 消息推送,顾名思义,是由一方主动发起,而另一方与发起方以某一种方式建立连接并接收消息.在Android开发中,这里的发起方我们把它叫做推送服务器(Push Server),接收方叫做客户端(Client).相比通过轮询来获取新消息或通知,推送无论是在对客户端的资源消耗还是设备耗电量来说都比轮询要好,所以,目前绝大多数需要及时消息推送的App都采用Push的方式来进行消息通知. Android生态系统原本提供了类似于Apple iOS推送服务APNS的GCM(Google Clo

交互设计:浅析手机消息推送设计

消息是提醒用户有更新的内容,可能短信.邮件.好友申请和日程安排.消息的作用在于主动提醒用户,不需要主动刷新程序或者网页去检查更新,比如 Android的sina微博,必须手动刷新程序才能更新微博或者查看好友申请.这种做法可以节省流量,对于手机包月用户而言非常有必要的.用户专注于当 前任务时,可以接收到其他应用程序推送的消息,用户可以及时处理多任务. 推送机制 最基础的方法是程序实时联网获取消息,但是程序会占用内存,频繁联网耗费电量,程序各自链接自有服务器还会占用很多进程.以轮询(poll)的 方

iOS实现远程推送原理及过程_IOS

推送通知,是现在的应用必不可少的功能.那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题.那么首先让我们准备一些做推送需要的东西.我们需要一个付费的苹果开发者账号(免费的不可以做远程推送),有了开发者账号,我们可以去苹果开发者网站,配置自己所需要的推送的相关证书.然后下载证书,供我们后面使用,详细的证书配置过程,我们下面再说. 首先我们要说说iOS推送通知的基本原理: 苹果的推送服务通知是由自己专门的推送服务器AP

iOS远程推送原理及实现过程

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/571 推送通知,是现在的应用必不可少的功能.那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题.那么首先让我们准备一些做推送需要的东西.我们需要一个付费的苹果开发者账号(免费的不可以做远程推送),有了开发者账号,我们可以去苹果开发者网站,配置自己所需要的推送的相关证书.然后下载证书,供我们后面使用,详细

Android、iOS和Windows Phone中的推送技术

推送并不是什么新技术,这种技术在互联网时代就已经很流行了.只是随着进入移动互联网时代,推送技术显得更加重要.因为在智能手机中,推送从某种程度上,可以取代使用多年的短信,而且与短信相比,还可以向用户展示更多的信息(如图像.表格.声音等). 推送技术的实现通常会使用服务端向客户端推送消息的方式.也就是说客户端通过用户名.Key等ID注册到服务端后,在服务端就可以将消息向所有活动的客户端发送. 实际上,在很多移动操作系统中,官方都为其提供了推送方案,例如,Google的云推送.IOS.Windows