Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 解除presentModalViewController最优雅的方式?_Iphone_Ios_Tabs_Uitabbarcontroller - Fatal编程技术网

Iphone 解除presentModalViewController最优雅的方式?

Iphone 解除presentModalViewController最优雅的方式?,iphone,ios,tabs,uitabbarcontroller,Iphone,Ios,Tabs,Uitabbarcontroller,我已经成功地在启动时显示了一个对用户进行身份验证的视图。成功后,我希望presentModalViewController不再可见,并正确释放 我的代码如下: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after applicat

我已经成功地在启动时显示了一个对用户进行身份验证的视图。成功后,我希望presentModalViewController不再可见,并正确释放

我的代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.

    // Add the tab bar controller's view to the window and display.
    [self.window addSubview:tabBarController.view];

    Overview *overview = [[Overview alloc] initWithNibName:@"Overview" bundle:nil];
    [self.tabBarController presentModalViewController:overview animated:YES];
    [overview release];
    [self.window makeKeyAndVisible];

    return YES;
}

在模态viewcontroller中,您需要一段代码来执行以下操作:

[self dismissModalViewControllerAnimated:YES];

在模态viewcontroller中,您需要一段代码来执行以下操作:

[self dismissModalViewControllerAnimated:YES];

+1为正确答案。模式显示的viewController会将此消息传递给最初打开模式视图的viewController。@直到总是这样吗?在apple的music picker和e-mail sending类中,会向打开它的viewController发送一条委托消息,然后由viewController根据modal view controller上的输入来决定是否关闭或执行其他操作。@Zaky在谈到使用这些方法时,总是这样[UIViewController呈现ModalViewController:动画:]和[UIViewController解除ModalViewController激活:]根据苹果的参考资料。@Zaky,这取决于程序的设计,但从功能上讲,您可以在ViewController类本身或其他地方执行。但是,将其放在ViewController中会限制其使用。这意味着ViewController将始终以模式显示和关闭。如果您要将ViewController放在其他地方(例如在NavigationController中),这样代码就没有意义了。这就是为什么从设计角度来看,最好将调用外部化(如Apple示例中所示),但这需要更多的工作,您需要一个委托+协议等+1才能获得正确答案。以模态显示的viewController将此消息传递给最初打开模态视图的viewController。@直到总是这样吗?在apple的音乐拾取和电子邮件发送类中,将向viewController发送一条委托消息打开它,然后根据模态视图控制器上的输入决定它是否关闭或执行其他操作。@Zaky使用方法[UIViewController presentModalViewController:animated:]和[UIViewController DismissModalViewController Imimated:]时,情况总是如此根据苹果的参考资料。@Zaky,这取决于程序的设计,但从功能上讲,您可以在ViewController类本身或其他地方执行。但是,将其放在ViewController中会限制其使用。这意味着ViewController将始终以模式显示和关闭。如果您要将ViewController放在其他地方(例如在NavigationController中),这样的代码就没有意义。这就是为什么从设计的角度来看,将调用外部化更好(如Apple示例中所示),但这需要更多的工作,您需要一个委托+协议等。