多视图控制器。有最大值吗?

我正在将iPad应用程序放在一起,允许用户通过虚拟导览工作。他们能够通过屏幕向前移动,在屏幕上有些按钮可用于其他材料,例如视频或更多信息。 如果Keynote支持超链接,那么它将非常适合,但因为它不是我试图在Xcode中重新创建游览。 我是一个新手,但花时间研究并有代码来显示'幻灯片'和前进和后退的能力。幻灯片不再是带有全屏图形和各种选项按钮的图像视图,有些幻灯片很简单,除了前后都没有其他功能,但其他幻灯片还有其他链接 然而,以这种简单的方式进行操作意味着我最终会得到大量的视图控制器和XIB文件,目前在75,我知道必须比任何应用程序都要多。然而它确实有效,虽然有时在设备上运行而不是在模拟器中它会爆炸。 我的问题是,一个应用程序中的视图控制器数量是否有限制,并且会有大量数据导致不稳定?我知道处理视图的其他方法,例如将它们放在数组中并将它们推出单个视图控制器,但这不能让我灵活地为不同的内容定制幻灯片。 我欢迎任何帮助或建议,我希望以正确的方式发布这个问题(这是我的第一个) 非常感谢 基隆 我用来操纵视图的代码是
-(IBAction)goBack {
    [self dismissModalViewControllerAnimated:NO];
}

-(IBAction)goForward {  
    Slide5ViewController *screen = [[Slide5ViewController alloc] initWithNibName:nil bundle:nil];
    screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:screen animated:YES];
    [screen release];
}   
    
已邀请:
基隆, 为什么不只有一个“幻灯片”视图控制器和一个不同的图像?使用某种数据结构来保存每张幻灯片的按钮,图像和路径的信息,然后只为每张幻灯片重复使用相同的视图控制器? 然后视图控制器可以在当前可见视图和其自身的下一个实例之间转换时动态加载每个图像......应该可以仅使用1个视图控制器。 如果您对使用Interface Builder感到满意,请继续使用XIB文件来解决所有问题。但是,不是将每个“文件所有者”设置为不同的视图控制器,而是将它们全部设置为相同的视图控制器。然后,在你的
IBAction
方法中(当用户按下按钮时),使用一些逻辑说“我现在正在这个视图上,并且用户按下了这个按钮,那么我应该去哪一个?” 然后,调用类似
loadNewSlide:
的方法,如下所示:
- (void) loadNewSlide:(NSInteger)slideNumber
{
  // Make a string with the new XIB name
  NSString* xibName = [NSString stringWithFormat:@"slide-%d",slideNumber];

  // Create the next slide view controller (it doesn't matter if you create a slide view 
  // controller from within another slide view controller, remember, they are all just  
  // objects)
  SlideViewController *newSlideViewController = [[SlideViewController alloc] initWithNibName:xibName bundle:nil];

  // Change the view
  UIWindow *theWindow = [self.view superview];
  [self.view removeFromSuperview];
  [theWindow addSubview:newSlideViewController.view];

  // Release, the view stack now should be retaining the view controller instead
  [newSlideViewController release];
}
这比使用75个视图控制器运行“模态”要好得多(正如您之前建议的那样),因为这样一次只能在内存中保留1张幻灯片 - 无论您当前正在查看 - 然后将加载下一张幻灯片是时候搬到它了。     
所有的拳头,日志中有什么错误? 您是否正确实现了视图控制器的viewDidUnload方法?视图控制器应该能够卸载加载的xib。另外,在didReceiveMemoryWarning中发布数据。 其次,使用UINavigationController处理视图控制器堆栈而不是模态视图控制器堆栈可能会更好。您可以隐藏导航栏或自定义它。     

要回复问题请先登录注册