相关疑难解决方法(0)

iOS - pushViewController与presentModalViewController的区别

是什么beetween调用差异presentModalViewController和pushViewController,当:

  • 动画设置为NO(即使是,这只是一个可以更改的动画风格).
  • 在呈现模态视图时定义了导航控制器,因此它也可以通过调用堆栈导航,....

这只是为了能够从第一个推出的视图回来吗?Woooaaaaaa .....

我想差异在于其他地方和更深层次.不是吗?

cocoa-touch uinavigationcontroller pushviewcontroller presentmodalviewcontroller ios

24
推荐指数
2
解决办法
2万
查看次数

为什么这段代码使用presentModalViewController?(不是pushViewController)

任何人都明白为什么在CoreDataBooks示例代码中:

(a)控制器交换差异的方法

虽然单击一个项目并转到详细视图使用了似乎是" pushViewController " 的标准UINavigationController概念,但当您单击"添加"新记录按钮时,它会启动新视图以通过" presentModalViewController "添加记录"接近?也就是说,这两种方法都不一样,只是使用pushViewController方法?

使用每种方法实际上是否有任何优势?我不太明白.我猜想苹果必须为不同的场景选择不同的方法.例如:

  1. 他们会看到与用户的任何差异(即UI差异或功能差异)?

  2. 开发人员的任何差异(或优点/缺点)

例如,如果你要考虑使用pushViewController方法,而不是针对的presentModalViewController方法为"添加"的情景......

(b)数据共享方法的差异

他们如何共享共同数据对象的方法似乎有所不同 - 所以再次只是想知道为什么这些方法不一样?(即在两种情况下,主控制器暂时传递到另一个视图,并且它们之间存在一些共享数据 - 即子视图需要传递回父级)

代码提取便利性

这是为了"编辑":

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Create and push a detail view controller.
    DetailViewController *detailViewController = [[DetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    Book *selectedBook = (Book *)[[self fetchedResultsController] objectAtIndexPath:indexPath];

    // Pass the selected book to the new view controller.
    detailViewController.book = selectedBook;
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];
}
Run Code Online (Sandbox Code Playgroud)

但是对于"添加"

- (IBAction)addBook {
    AddViewController *addViewController = [[AddViewController alloc] initWithStyle:UITableViewStyleGrouped];
     addViewController.delegate = self;

     // …
Run Code Online (Sandbox Code Playgroud)

iphone uiviewcontroller uinavigationcontroller modalviewcontroller ios

4
推荐指数
1
解决办法
5100
查看次数

PresentModalViewController 与 PushViewController 内存消耗

我有两种方法可以从一个视图控制器跳转到另一个视图控制器

对于presentViewController

  [self presentModalViewController:view animated:YES];
Run Code Online (Sandbox Code Playgroud)

对于pushViewControlle应该使用

[self.navigationController pushViewController:view animated:YES];
Run Code Online (Sandbox Code Playgroud)

哪种方法是最好的方法?

哪个会导致更多的内存泄漏?

如果我们的设计是这样的,则使用哪一个

Introduction view (bunch of slides )-> login -> signUp-> HomeActivityScreen-> Then Bunch of tab bar in it
Run Code Online (Sandbox Code Playgroud)

xcode objective-c uinavigationcontroller presentmodalviewcontroller ios

1
推荐指数
1
解决办法
8147
查看次数