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