在我的iPhone上已經存在的UIViewController的頂部添加UIViewController的最佳方式是什麼?我知道有兩種方法。但是有更好的方法嗎?如果不是,哪一個更好?將UIViewController添加到另一個UIViewController的最佳方式
1. [self presentModalViewController:controller animated:NO];
2. [self.view addSubview:someController.view];
在我的iPhone上已經存在的UIViewController的頂部添加UIViewController的最佳方式是什麼?我知道有兩種方法。但是有更好的方法嗎?如果不是,哪一個更好?將UIViewController添加到另一個UIViewController的最佳方式
1. [self presentModalViewController:controller animated:NO];
2. [self.view addSubview:someController.view];
[[self view] addSubview: [otherViewController view]];
CGRect frame = [[self view] frame];
int direction = 1;
switch (direction) {
case 0: // from bottom
frame.origin.y = [[self view] frame].size.height;
[[otherViewController view] setFrame: frame];
frame.origin.y = 0.0 - [[self view] frame].size.height;
break;
case 1: // from right
frame.origin.x = [[self view] frame].size.width;
[[otherViewController view] setFrame: frame];
frame.origin.x = 0.0 - [[self view] frame].size.width;
break;
}
[UIView animateWithDuration: 1.0
delay: 0.0
options: UIViewAnimationOptionCurveEaseInOut
animations:^{
[[self view] setFrame: frame];
}
completion: ^(BOOL finished) {
}
];
取決於你想要什麼。沒有一種方法比另一種更好。所有隻是...方式。
這取決於您顯示視圖控制器的要求。 可能還有一個推動導航堆棧中的控制器。
[self.navigationController pushViewController:anotherViewController animated:YES];
檢查申請論壇上發帖何時使用pushViewController:
當presentModalViewController:
。
這取決於你想如何實現它。如果要顯示視圖控制器並使用現有的轉換將其解除,可以使用presentModalViewController。但是,如果您想用一些自定義動畫來顯示它,則可以使用addSubView。而且,這完全取決於你。
兩種方式,幾乎是等同的,因爲做出的意見堆棧,你可以通過看下面的視圖(直到沒有鹼性),[self removeFromSuperview]
,當你addSubView
,並[self dismissModalViewControllerAnimated:YES];
,當溜溜使用[self presentModalViewController:tempView animated:NO];
,但是的presentModalViewController
,給你動畫的默認選項是否與addSubview
,你需要工作一點。
所以,如果我有一個UIViewController,我想添加一個子視圖,我怎麼能動畫它?例如,讓UIButton從右側飛入? – StanLe
@StanLe,你可以使用UIView動畫。看到這個鏈接,http://objcolumnist.com/2009/07/18/simple-uiview-based-animations-on-the-iphone/ – EmptyStack