0

我正在制作模态视图。我想要做的是等到模态视图被解除。这是代码。

    SelecYourCountryViewController *selecYourCountryViewController = [[SelecYourCountryViewController alloc] initWithNibName:@"SelecYourCountryViewController" bundle:nil];
    selecYourCountryViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self.presentingViewController presentViewController:selecYourCountryViewController animated:YES completion:nil];
    NSLog(@"select your contry");

在这段代码中,尽管 modalview(selecYourCountryViewController) 是活动的,但流程会进入下一步。简而言之,在 selectYourCountryViewController 工作时会显示 NSLog。请让我知道等待视图被关闭并获得返回值的方式。

(就像 VisualBasic 行为上的 Msgbox)

提前致谢。

4

2 回答 2

0

头脑简单的答案是:实施viewWillAppear:。此视图出现的原因之一是呈现的视图消失了。

更复杂和正确的答案是:由你来设置,以便当呈现的视图控制器被解除时,如果这个控制器需要听到它,呈现的视图控制器有办法向这个控制器发送一条消息,告诉它它正在被解雇。查看 Xcode 中的 Utility 应用程序模板,了解如何做到这一点:呈现控制器向呈现的控制器传递对自身的引用,以便呈现的控制器可以在关闭之前向它发送消息。

您可能还想阅读我书中的讨论:

http://www.aeth.com/iOSBook/ch19.html#_presented_view_controller

于 2012-11-11T03:48:01.157 回答
0

虽然我很同情您渴望 VB 的便利性MsgBox,但底线是,这不是它在 iOS 中的工作方式(出于某些充分的理由)。辅助视图控制器告诉第一个视图控制器某事已完成的正确方法是通过委托。(请参阅View Controller Programming Guide中的Using Delegation to Communicate with Other Controllers 。 )或者,您可以让辅助视图实际触发下一步。

如果您尝试 on viewWillAppear,您必须确定它出现的原因,即初始外观,因为辅助视图成功并已被关闭,因为辅助视图被取消并关闭等。另外,请注意,如果您曾经转换到 iPad 应用程序并使用弹出框,请记住,viewWillAppear当弹出框被关闭时,您将不会获得该方法等)。只是需要注意的一些小事情。

于 2012-11-11T07:32:21.273 回答