Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Macos 制作向导的最佳方法_Macos_Wizard - Fatal编程技术网

Macos 制作向导的最佳方法

Macos 制作向导的最佳方法,macos,wizard,Macos,Wizard,我需要制作一个包含多个交互页面的向导,从用户那里收集数据。通过制作每个窗口来制作这么多页面是一项艰巨的工作。是否有任何简单的类或命令来管理它?根据H2CO3的注释展开,假设允许用户随意后退,您可能需要使用。然后,要继续,只需将新的UIViewController推送到堆栈上 或者,您可以查看故事板,它允许您使用IB在一行中定义整个事件,并使用IB进行转换。但是,这些转换最终会嵌入到UINavigationController中。有几种方法可以实现这一点。首先,您可以使用UINavigationC

我需要制作一个包含多个交互页面的向导,从用户那里收集数据。通过制作每个窗口来制作这么多页面是一项艰巨的工作。是否有任何简单的类或命令来管理它?

根据H2CO3的注释展开,假设允许用户随意后退,您可能需要使用。然后,要继续,只需将新的UIViewController推送到堆栈上


或者,您可以查看故事板,它允许您使用IB在一行中定义整个事件,并使用IB进行转换。但是,这些转换最终会嵌入到UINavigationController中。

有几种方法可以实现这一点。首先,您可以使用
UINavigationController
,它允许您在多个视图控制器之间轻松移动。如果您可以使用多个视图控制器,这可能是最好的选择

要推送到导航堆栈中的下一个控制器,可以使用:

UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"someID"];
[self.navigationController pushViewController:controller animated:YES];
UIScrollView
也是一个选项,但当项目在屏幕上或屏幕下移动时,需要仔细的手动内存管理,但这可以在一个类中完成

[arrayOfViews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx,BOOL *stop) {
    UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(320 * idx, 0, 320, 480)];
    float randNum = arc4random() % 255;
    [subView setBackgroundColor:[UIColor colorWithRed:randNum/255.0 green:randNum/255.0 blue:randNum/255.0 alpha:1.0]];
    [myScrollView addSubview:subView];
    [myScrollView setContentSize:CGSizeMake(320 * (idx + 1), 480)];
}];
最后一个也是最灵活的选择是只制作主视图的子视图,并且可以为每个项目在屏幕上的移动制作自己的自定义动画

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
    [someSubview setTransform:CGAffineTransformConcat(CGAffineTransformMakeScale(0.5, 0.5), CGAffineTransformMakeTranslation(-300, -300))];
}completion:^(BOOL done){
   //some completion items
}];

已尝试
UINavigationController
?谢谢。但我的意思是为OSX编码。我认为UINavigationController仅适用于iOS。我说的对吗?@user1642260对此表示抱歉,但大部分内容应该在OS X中仍然可用,将一些UI更改为NS,并相应地修复其他问题。这究竟是什么正确答案?没有NSNavigationController。@Ahmetalpbarkan我看到了您留下的第一条评论的通知。有点粗鲁,你不觉得吗?是的,现在回想起来,这确实有点傻,但我回答的问题最初被标记为iOS,我从未声称NSNavigationController存在。我说“这其中的大部分应该在OSX中仍然可用,将一些UI更改为NS,并相应地修复其他问题。”