我想使用storyboard來創建我的應用程序。 我可以找到很多關於如何將它與導航或tabcontroller一起使用的信息,但我不想要它們中的任何一個。沒有導航控制器的ios segues
我的目標是創建一個具有不同視圖但不使用導航或tabcontroller的應用程序。 我該怎麼做?
我想使用storyboard來創建我的應用程序。 我可以找到很多關於如何將它與導航或tabcontroller一起使用的信息,但我不想要它們中的任何一個。沒有導航控制器的ios segues
我的目標是創建一個具有不同視圖但不使用導航或tabcontroller的應用程序。 我該怎麼做?
你爲什麼不要他們?這好像你正在爲自己工作。
你可以有一個是不可見的UI導航控制器,它只是爲了推動和彈出等UIViewControllers然後默認推SEGUE類型將只是工作負責。
但是,如果你真的不想讓他們,你總是可以做一個custom segue class並使用它來管理你的視圖控制器堆棧。
在IOS故事板中,如果你不想使用導航,那麼你就不能使用push segue。然後,您可以使用模態賽格或自定義賽格。在模態SEGUE,有四個轉變:
然而,所有這些預定義SEGUE動畫不能瓶坯橫向滑動動畫segue。如果你想使用水平滑動效果,你必須使用自定義的繼續。你需要覆蓋這樣的功能:
- (void) perform
{
UIViewController *desViewController = (UIViewController *)self.destinationViewController;
UIView *srcView = [(UIViewController *)self.sourceViewController view];
UIView *desView = [desViewController view];
desView.transform = srcView.transform;
desView.bounds = srcView.bounds;
if(isLandscapeOrientation)
{
if(isDismiss)
{
desView.center = CGPointMake(srcView.center.x, srcView.center.y - srcView.frame.size.height);
}
else
{
desView.center = CGPointMake(srcView.center.x, srcView.center.y + srcView.frame.size.height);
}
}
else
{
if(isDismiss)
{
desView.center = CGPointMake(srcView.center.x - srcView.frame.size.width, srcView.center.y);
}
else
{
desView.center = CGPointMake(srcView.center.x + srcView.frame.size.width, srcView.center.y);
}
}
UIWindow *mainWindow = [[UIApplication sharedApplication].windows objectAtIndex:0];
[mainWindow addSubview:desView];
// slide newView over oldView, then remove oldView
[UIView animateWithDuration:0.3
animations:^{
desView.center = CGPointMake(srcView.center.x, srcView.center.y);
if(isLandscapeOrientation)
{
if(isDismiss)
{
srcView.center = CGPointMake(srcView.center.x, srcView.center.y + srcView.frame.size.height);
}
else
{
srcView.center = CGPointMake(srcView.center.x, srcView.center.y - srcView.frame.size.height);
}
}
else
{
if(isDismiss)
{
srcView.center = CGPointMake(srcView.center.x + srcView.frame.size.width, srcView.center.y);
}
else
{
srcView.center = CGPointMake(srcView.center.x - srcView.frame.size.width, srcView.center.y);
}
}
}
completion:^(BOOL finished){
//[desView removeFromSuperview];
[self.sourceViewController presentModalViewController:desViewController animated:NO];
}];
}
如果你仍然有問題,你可以檢查這個職位。它也有一個YouTube視頻向您展示如何實現這一習俗賽格瑞:
我還發現在互聯網上該解決方案:http://stackoverflow.com/questions/15139909/auto-layout-screen-rotation-and-uiview-animation/20958850#20958850 – asdfasdfads
你怎麼隱藏在故事板的用戶界面?然後,如何以編程方式推送和彈出ViewControllers? – Crashalot