NavigationControllers具有ViewController堆栈来pipe理和限制animation转换。 将视图控制器作为子视图添加到现有的视图控制器需要将事件传递给子视图控制器,这是一个痛苦的pipe理,加载了一点烦恼,一般感觉像一个坏的黑客时,实施(苹果还build议这样做)。 呈现一个模式视图控制器再次放置一个视图控制器在另一个之上,虽然它没有上述事件传递的问题,它不真正“交换”视图控制器,它堆叠它。 故事板仅限于iOS 5,几乎是理想的,但不能在所有项目中使用。 有人可以提出一个固体代码示例的方式来更改视图控制器没有上述限制,并允许他们之间的animation过渡? 一个closures的例子,但没有animation: 如何使用多个iOS自定义视图控制器没有导航控制器 编辑:导航控制器使用是好的,但需要有animation过渡样式(而不是简单的幻灯片效果)所显示的视图控制器需要完全交换(不堆积)。 如果第二个视图控制器必须从堆栈中移除另一个视图控制器,那么它的封装不够。 编辑2:iOS 4应该是这个问题的基本操作系统,我应该澄清,当提到故事板(上面)。