我正在开发一个应用程序,需要在启动时从网站获取JPEG。模态视图不会重新显示?
显示启动画面,然后应用程序尝试从文件中获取Web地址。如果文件丢失,我打开一个模式视图(如UIModalPresentationFormSheet),该模式视图具有供用户输入地址的文本视图 - 然后将地址保存到文件中。
用户点击OK按钮,并尝试获取JPEG。如果地址错误或者JPEG不在Web服务器上,则模式对话框必须重新打开,以便用户可以将Web地址更改为正确的地址。
初始屏幕视图控制器包含下列方法:
- (void)openAddressDialog
{
serverView *viewController = [[serverView alloc]init];
[viewController setServerAddress:[businessLogic serverAddress]];
[viewController setDelegate:self];
[viewController setModalPresentationStyle:UIModalPresentationFormSheet];
[self presentModalViewController:viewController animated:YES];
}
有趣的是,当我打电话从viewDidLoad方法模态视图没有出现openAddressDialog方法。我不得不将它移动到viewDidAppear方法。因此,大概这种观点必须处于特定的状态,然后才能开启模态观点。
- (void)closeDialog:(UIViewController *)dialogController:(Boolean)actionRequired
{
// If action required, get the server address from the dialog
if (actionRequired)
{
serverView *viewController = (serverView *)dialogController;
NSString *address = [[viewController serverAddress]copy];
[businessLogic setServerAddress:address];
[self dismissModalViewControllerAnimated:YES];
if (![logoImage image])
{
[logoImage setImage:[businessLogic eventLogo]];
if (![logoImage image])
{
[self openAddressDialog];
}
}
}
else
{
exit(0);
}
}
这是当用户点击确定或取消时从模式视图回调的委托方法。 actionRequired参数表示确定已被点击。如果是这样,新的服务器地址从模态视图中获取,并且模态视图被解除。尝试从新地址(在业务规则类中)获取JPEG,如果仍然找不到文件,则再次调用上面显示的第一个方法(openAddressDialog),以便用户可以再次更正地址。
第一次模态视图显示正常,但如果用户输入了错误的地址,则不会再出现。这是否与我尝试在解散之后如此迅速地表达模态观点有关?
我对iPad的开发很陌生,所以很感激任何建议。
的另一件事,这表明我的C的缺乏经验++也许是......如果我宣布在M文件中的私有方法,我们称之为
- (void) methodB
和方法调用另一个私有方法,让我们称之为
- (void) methodA
methodA必须在m文件中比methodB更早定义。如果我也想让methodA调用methodB,我就会陷入僵局。我知道的唯一方法就是在h文件中声明methodB,这会使其公开。我如何编写这个场景以便外部世界既不能看到这两种方法?
是,我使用初始化,因为NIB文件具有相同的名称作为它的控制器,而在其他地方优秀作品在我的应用程序,而苹果文档说这很好。 –
cheers.u可以检查我的答案是正确的,如果我没有回答你。 –