我正在尝试创建一个iOS(特定于iPhone)的应用程序,用户必须在访问应用程序的其余部分之前进行身份验证.我正在使用Storyboard作为主要应用程序,看起来像这样(分成不同的行):
(1) -> NavigationController
(2) -(o-o)-> OfficesViewController
(3) -[<-]-> OfficeViewController
Run Code Online (Sandbox Code Playgroud)
我还有一个单独的XIB文件ScanOverlayViewController,OfficeViewController当用户按下按钮时,该文件以编程方式被推送.不确定将Storyboard和XIB混合在一起是否合适,但它到目前为止一直在工作.
无论如何,回到主题,我想把一个身份验证屏幕放在前面NavigaitonController,但我不知道如何.
我尝试在Storyboard中放置一个未链接的视图并将其设置为初始视图.然后我放了一个隐藏的按钮,然后做了一个segue NavigationController.在代码中,我尝试让控制器执行segue,但即使视图已正确显示,也不会实际执行seque.
然后,我尝试将身份验证视图设置为自己独立的XIB,并在应用程序委托中初始化控制器,并将其视图设置为应用程序委托的子视图.这只是导致应用程序直接进入OfficesViewController视图,好像我没有做任何事情.
是否有一种特定的方式来正确执行此操作,以便它与Storyboard一起使用?
提前致谢!
UPDATE
这是我当前的应用代表:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
AuthenticationViewController *authenticationViewController = [[AuthenticationViewController alloc] initWithNibName:@"AuthenticationViewController" bundle:nil];
if (authenticationViewController) {
NSLog(@"Should have generated %@", authenticationViewController);
};
[[[application keyWindow] rootViewController] presentModalViewController:authenticationViewController animated:YES];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
控制器确实已经分配并初始化,但它没有显示出来.
我在代码中添加了以下行.
#ifdef DEBUG
//DEBUG only code
#endif
Run Code Online (Sandbox Code Playgroud)
我已经转到xcode中的project-> info选项卡并设置'命令行构建使用'来调试并运行代码片段中执行'if'的代码片段.问题是当我设置命令行构建'用于释放和运行代码时.if条件中的代码片段仍然运行.我已经将预处理器DEBUG宏设置为'DEBUG = 1'而没有引号.怎么解决这个问题.
我正在尝试使用storyboard为两个视图控制器之间的iPad应用程序实现push segue过渡.我使用与iPhone应用程序相同的步骤完成了它,但推送segue不起作用,它只有在我使用模态转换时才能工作.我是iPad的新成员,所以我明白我错过了一些东西.
非常感谢.
我正在从google weather api读取XML文件并使用NSXMLParser解析它.有问题的城市是巴黎.这是我得到的简短的xml输出
<?xml version="1.0"?>
<xml_api_reply version="1">
<weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" ><forecast_information>
<city data="Paris, Île-de-France"/>
<postal_code data="Paris"/>
<latitude_e6 data=""/>
<longitude_e6 data=""/>
...
...
Run Code Online (Sandbox Code Playgroud)
现在我用来削减这个xml的代码是
NSString *address = @"http://www.google.com/ig/api?weather=Paris";
NSURL *URL = [NSURL URLWithString:address];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL];
[parser setDelegate:self];
[parser parse];
...
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{
NSLog(@"XML Parser 1 ... elementName ... %@", elementName);
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的上述xml的输出
XML Parser 1 ... elementName ... xml_api_reply
XML Parser 1 ... …Run Code Online (Sandbox Code Playgroud) 我正在使用XCode 4.我有一个很长的.m文件,有很多函数实现.
我想按名称或其返回类型或.h文件中的相同顺序按字母顺序对函数进行排序.
这样做的目的是更好地组织我的.m文件.我最近重新安排了相应的.h文件中的函数,如果它们是一种自动的方式对函数实现进行排序,就像它在.h中的排序方式一样.
这是我现在拥有的一个例子.
目前有.
.h文件
-(void) a;
-(void) b;
-(void) c;
Run Code Online (Sandbox Code Playgroud)
.m文件
-(void) c;
-(void) a;
-(void) b;
Run Code Online (Sandbox Code Playgroud)
我想.m以同样的方式排序.h是排序的.我真的希望没有我复制粘贴这是可能的.该文件长达数千行.
我正在尝试使用xcode更改我的应用的启动图像,但相关目标下的"摘要"标签不可见,我只看到"信息","构建设置","构建阶段"和"构建规则".
我有什么想法可以进入摘要标签?
我只是使用Xcode的重构工具将一个核心数据类重命名为Player to Person.修复了因使用Xcode在重命名时遗漏的点符号导致的大约100个错误后,我到了最后一个:
Player.m - 词法或预处理器问题 - 找不到'Person.h'
Player.m不再存在于项目中,并在错误中显示为已删除(空图标).显然,既然我摆脱了它,我不希望它再存在!
为了解决这个问题,我尝试重新添加Player.h和Player.m的旧副本,以及清理.我检查了Build Phases-> Compile Sources部分,Person.m在那里,Player.m不是.Person.h确实存在.
不确定它是否重要,但我使用mogenerator来生成我的核心数据类.此外,这是我的第三个xcdatamodel版本.版本1和2使用了Player.h.
以下是错误的屏幕截图:

关于这个主题的几个较老的问题(比如这个)存在,但我找不到Xcode 4的有用提示,所以..
是否可以将一个组(可能有数百个来自磁盘上各种文件夹的文件)从一个项目复制到另一个项目?
即,在为特定项目精心设置所有依赖项之后,我可以继续将该组(如"黄色文件夹"中)复制到新创建的项目中吗?
如果它在Xcode 4中是可能的,它至少不是直截了当的
任何提示赞赏.
所以最近我的iPhone 4决定停止工作,我再也无法通过USB将它连接到我的Mac或PC(只有当我将它连接到墙上插座的USB时才会充电,我必须按30针插入时连接器向上)但这是另一个问题.
问题是我无法在我的设备上构建和测试我的应用程序.我用iTunes设置了设备,因此我可以进行无线同步.因此,除了在我的设备上测试我的应用程序外,手机仍可100%使用.
我正在阅读另一篇文章Xcode 4.2支持无线连接设备似乎在谈论无线在设备上构建应用程序.但是他们也说它在Xcode 4.3.1中删除了.
我以前从未在以前的Xcode中使用过这个功能,所以我不确定这是不是他们实际上是为了什么/如果他们运作良好或者没有.
基本上我问是否有人知道如何通过无线方式将我的应用程序构建到我的设备上.
我想我可以构建一个AdHoc版本,将应用程序文件放在我的iTunes中并在那里同步我的设备,但在那时我宁愿只是借用一个朋友设备进行测试.
我有一个音频播放器应该能够播放多种音频格式.该应用程序正在使用BASS音频库,它需要一些导出.以下是格式.除了.mov(仅音频)格式的文件外,一切正常.
关于正确解决方法的任何想法?
exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetPassthrough];
if (nil == exportSession)
@throw [NSException exceptionWithName:TSUnknownError reason:@"Couldn't create AVAssetExportSession" userInfo:nil];
if ([[assetURL pathExtension] compare:@"mp3"] == NSOrderedSame) {
[self doMp3ImportToFile:destURL completionBlock:completionBlock];
return;
}
exportSession.outputURL = destURL;
// set the output file type appropriately based on asset URL extension
if ([[assetURL pathExtension] compare:@"m4a"] == NSOrderedSame) {
exportSession.outputFileType = AVFileTypeAppleM4A;
} else if ([[assetURL pathExtension] compare:@"wav"] == NSOrderedSame) {
exportSession.outputFileType = AVFileTypeWAVE;
} else if ([[assetURL pathExtension] compare:@"aif"] == NSOrderedSame) {
exportSession.outputFileType = AVFileTypeAIFF; …Run Code Online (Sandbox Code Playgroud) xcode4 ×10
ios ×5
xcode ×5
ios5 ×3
objective-c ×3
iphone ×2
build ×1
debugging ×1
lexical ×1
preprocessor ×1
storyboard ×1
wireless ×1
xml ×1