【问题标题】:issue while navigation method called from modal view in iphone?从 iphone 的模态视图调用导航方法时出现问题?
【发布时间】:2012-07-10 16:19:26
【问题描述】:

我从呈现的模式视图调用导航方法时遇到问题。 我有三个视图控制器,HomeViewController、loadViewController、modalViewController。

modalViewController 通过按下按钮从 HomeViewController 呈现为模式视图。实际上我需要的是,当我从呈现的 modalViewController 中按下一个按钮时,模式视图应该被关闭并且 HomeViewController 应该导航到 loadViewController。 它不适用于我的代码,

HomeViewController.m

  - (IBAction)shortCutButtonPressed:(id)sender {

         ShortCutViewController *viewController=[[ShortCutViewController alloc]initWithNibName:nil bundle:nil];

         [self.navigationController presentModalViewController:viewController animated:YES];

         [viewController release];
      }


   -(void)loadViewControllerLoad
     {
         loadViewController *loadView=[[loadViewController alloc]initWithNibName:nil bundle:nil];

         [self.navigationController pushViewController:loadView animated:YES];

         [loadView release];

     }

modalViewController.m

//模态视图控制器会从HomeViewController调用函数loadViewControllerLoad来导航homeview到loadView。函数调用正确到达,但视图没有导航到 loadView

    - (IBAction)HomeButtonPressed:(id)sender {

          homeView=[[HomeViewController alloc]initWithNibName:nil bundle:nil];

          [homeView loadViewControllerLoad];

          [[self presentingViewController] dismissModalViewControllerAnimated:YES];

          [homeView release];

       }

函数调用到达 HomeViewController 但视图没有导航到 LoadView?

【问题讨论】:

    标签: iphone uinavigationcontroller modalviewcontroller


    【解决方案1】:

    我明白了...您的实现不正确。当您在 modalViewController.m 分配 HomeViewController 对象时, HomeViewController 的 self.navigationController 和所有其他属性将为 nil 调用 loadViewControllerLoad 方法时...所以 不要创建 HomeViewController 的新对象 。通过任何其他方式获取对象.. 传递它或使用属性从您的 modalViewController 获取 HomeViewController 对象以调用方法“loadViewControllerLoad”

    使用 .nib 文件名来初始化您的视图,而不是将其设置为 nil。

    ShortCutViewController *viewController=[[ShortCutViewController alloc]initWithNibName:@"Your .nib name" bundle:nil];
    

    示例:

    ShortCutViewController *viewController=[[ShortCutViewController alloc]initWithNibName:@"ShortCutViewController" bundle:nil];
    

    也将此应用于 loadViewController 和 HomeViewController...

    【讨论】:

    • 但仍然没有变化,它没有导航到 loadView :(
    • 或将您的示例应用程序邮寄给我 shamsutk87@gmail.com ...我会在午餐后检查并更正(只需 30 分钟)...
    • 好的,谢谢您的解决方案,一条简单的线就可以很好地工作 [modal setParentClass:self];我删除了新的 homeView 对象,谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多