ios-pushViewController不正常运行

问题描述

pushViewController不正常运行
pushViewController在AppDelegate中不正常运行,只有警报视图解除了。

代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    loginReapeat = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(repeatLoginProcess) userInfo:nil repeats:YES];    //First Launch Settingsif ([[NSUserDefaults standardUserDefaults] boolForKey:@""FirstLaunch""]){}else{    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@""FirstLaunch""];    [[NSUserDefaults standardUserDefaults] synchronize];    [self alertShow];}    [window addSubview:[navigationController view]];[window makeKeyAndVisible];return YES;}     -(void)alertShow{    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@""Help!"" message:@""Need some help to use this App? Please tap the 'Help' button."" delegate:self cancelButtonTitle:@""Cancel"" otherButtonTitles:@""Help""nil];[alert show];}- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{NSString *title = [alertView buttonTitleAtIndex:buttonIndex];if([title isEqualToString:@""Help""]){    SignUp *signUp = [[SignUp alloc]initWithNibName:@""SignUp"" bundle:nil]    [self.navigationController pushViewController:signUp animated:YES];}} 

解决方案

原因有可能是你在执行alertview 代理方法的内部pushViewController时当前的window还没有设置好它的rootViewcontroller .所以你可以尝试这样改一下

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    loginReapeat = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(repeatLoginProcess) userInfo:nil repeats:YES];  [window addSubview:[navigationController view]]; //先设置window 的rootViewcontroller//First Launch Settingsif (![[NSUserDefaults standardUserDefaults] boolForKey:@""FirstLaunch""]){    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@""FirstLaunch""];    [[NSUserDefaults standardUserDefaults] synchronize];    [self alertShow];}    [window makeKeyAndVisible];return YES;}     
时间: 2024-09-20 00:11:51

ios-pushViewController不正常运行的相关文章

自动创建的a标签并使用js点击,在Andorid端好用但在IOS端不好用

先上出现问题的代码: HTML: <div class="info_content txt-item" onclick="selectInfoById(this)"> JS: function selectInfoById(this_) { var uid = $(this_).siblings("input[name=uid]").val(); var url = "/mobile/queryInfoById?uid=&q

ios开发navigationController pushViewController 方式多次跳转返回到最上层返回到指定的某一层的实现方法_IOS

返回指定的某个vc用下面(通过index定位) [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES]; 或(通过class定位) for (UIViewController *controller in self.navigationController.viewControllers) { if ([cont

你真的了解iOS代理设计模式吗?

本文是投稿文章,作者:刘小壮 在项目中我们经常会用到代理的设计模式,这是iOS中一种消息传递的方式,也可以通过这种方式来传递一些参数.这篇文章会涵盖代理的使用技巧和原理,以及代理的内存管理等方面的知识.我会通过这些方面的知识,带大家真正领略代理的奥妙.写的有点多,但都是干货,我能写下去,不知道你有没有耐心看下去.本人能力有限,如果文章中有什么问题或没有讲到的点,请帮忙指出,十分感谢! iOS中消息传递方式 在iOS中有很多种消息传递方式,这里先简单介绍一下各种消息传递方式. 通知:在iOS中由通

iOS 利用 framework 进行动态更新

前言 目前 iOS 上的动态更新方案主要有以下 4 种: HTML 5 lua(wax)hotpatch react native framework 前面三种都是通过在应用内搭建一个运行环境来实现动态更新(HTML 5 是原生支持),在用户体验.与系统交互上有一定的限制,对开发者的要求也更高(至少得熟悉 lua 或者 js). 使用 framework 的方式来更新可以不依赖第三方库,使用原生的 OC/Swift 来开发,体验更好,开发成本也更低. 由于 Apple 不希望开发者绕过 App

Catalyst 6509软件从CatOS到IOS方法

第一步:根据Flash卡的容量大小从CCO上下载Catalyst 6509相应的Native IOS系统软件:  通过show slot0:可以查看到Flash卡的容量,我们所选择的软件大小应该小于或等于Flash卡的容量. 假如Flash卡容量为24M,我们选择Catalyst 6509的IOS软件c6sup22-psv-mz.121-8b.E15,该软件用于S2和MSFC2,为服务提供商的特性软件,版本是12.18b(E15).大小为18.1MB,与现有的Flash卡的容量相当. 这些从CC

Cisco IOS的故障恢复方法

IOS是路由器交换机设备的核心,IOS全称internet operate system,中文是网络操作系统的意思.他就好比计算机的操作系统windows一样,虽然是软件但出现问题就无法进行任何软件的运行了.所以如果IOS出现问题的话路由交换设备将无法正常运行,配置命令都将荡然无存.我们只能通过重新安装IOS来解决. 本文以cisco 3550为例介绍IOS的恢复方法: 第一步:用控制线连接交换机console口与计算机串口1,用带有xmodem功能的终端软件连接(微软操作系统自带的超级终端软件

Cisco路由器存储器及IOS升级

一.首先介绍Cisco路由器的存储器 路由器与计算机有相似点是,它也有内存.操作系统.配置和用户界面,Cisco路由器中,操作系统叫做互连网操作系统(Internetwork Operating System)或IOS.下面主要介绍路由器的存储器. ROM:只读存储器包含路由器正在使用的IOS的一份副本: RAM:IOS将随机访问存储器分成共享和主存.主要用来存储运行中的路由器配置和与路由协议有关的IOS数据结构: 闪存(FLASH):用来存储IOS软件映像文件,闪存是可以擦除内存,它能够用IO

ios

无论在iPhone开发还是学习的过程中都会看到一些不是很理想的代码,不可 否认自己也在不断"贡献"着这类代码.面对一些代码的"坏味道",重构显然 是个有效的解决途径.<iPhone开发重构>系列就想总结和补充iPhone开发中经 历的一些重构,其间可能会引用一些开源以及实际项目的代码,本着对技术的探 求,冒昧之处还请作者多多见谅. 在iPhone开发的过程中经常会遇到根据不同的Table行或者标识符推入不同 的Controller的需要,一个最直接的实现

适用于iOS开发者的Android开发技巧

  我曾经从事过五年的iOS应用开发工作,那段时间我一直在尽量避免同Android打交道--不过现在情况不同了.不管大家是否相信,Android开发其实乐趣满满.而且与iOS开发相比也不像大家想象的那样差异巨大. 我在Android平台上开发出这款"七分钟锻炼"应用,并借此学到了很多宝贵的知识.我希望这篇文章分享的一些小技巧也能帮助大家解决实际问题.请注意,我接下来进行比较的内容并不一定完全匹配,而且本文的重点也不在于完整地叙述Android开发;当然,我一定会提到自己在开发这款简单应