【问题标题】:Dismiss / Present Modal View Controller - again viewdidLoad is callingDismiss / Present Modal View Controller - viewdidLoad 再次调用
【发布时间】:2012-02-25 05:45:17
【问题描述】:

当我点击下面的按钮informationBtn_clicked 时,我遇到了一个奇怪的问题。 InformationView来了。

主视图

-(IBAction)informationBtn_clicked:(id)sender{
       InformationView  *obj_Info=[[InformationView alloc] initWithNibName:@"InformationView" bundle:nil];
       UINavigationController *navigationObj = [[UINavigationController alloc] initWithRootViewController:obj_Info];
       [self.navigationController presentModalViewController:navigationObj animated:YES];
}

下一个视图

在后面的 btn 点击关闭视图控制器后;

-(void)btnBackClicked:(id)sender{
    [self dismissModalViewControllerAnimated:YES];
}

在这里,我的问题是当我关闭 NextView 时,再次调用主视图 viewDidLoad 方法。我的项目在 iOS 5 中运行,我正在使用 ARC。

我正在检查一种方法,即发布obj_Info,但结果相同,请帮助我,我的英语很差,试着理解我。

【问题讨论】:

标签: iphone objective-c ios uiview


【解决方案1】:

问题在于:

UINavigationController *navigationObj = [[UINavigationController alloc] initWithRootViewController:obj_Info];

您使用obj_Info 作为根视图控制器来初始化导航控制器。因此,当您关闭模态视图控制器时,导航控制器会显示其根视图控制器,这恰好与模态视图控制器相同。

尝试更改我提到的行:

UINavigationController *navigationObj = [[UINavigationController alloc] init];

【讨论】:

    【解决方案2】:

    他给你的链接显示,Apple 的代码中可能存在与你的问题相关的错误。目前,也许只是解决方法(例如,在 viewDidLoad 中,设置一个布尔值,然后在 viewDidUnload 中将其清除;如果在输入 viewDidLoad 时设置了它,则返回)

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多