显示UIView而不是.XIB的替代方法

时间:2015-08-20 06:27:56

标签: ios swift uiview

是否有另一种方式来显示UIView而不是使用.XIB?因为我有许多UIViewControllers,我把它显示为presentView,现在我必须改变它。

我的代码:

@IBAction func basketClearButton(sender: UITapGestureRecognizer) {
    let basketClearView = UIStoryboard(name:"Main", bundle: nil).instantiateViewControllerWithIdentifier("clearBasket") as! ClearBasketViewController

    //self.presentViewController(alert, animated: true, completion: nil)

    self.view.addSubview(basketClearView)
}

2 个答案:

答案 0 :(得分:0)

你可以通过使一个视图控制器为另一个视图控制器的子视图,使你想要在here上呈现VC的那些视图控制器子视图,你可以将子VC的视图作为子视图添加到父VC的视图中

以这种方式你可以在同一个屏幕上显示它们,你以前的整个代码将保持原样,只有呈现逻辑才会改变

这也很有帮助tutorial

答案 1 :(得分:0)

你可以在.xib文件中执行任何操作,也可以在代码中执行。因此,如果您有一个视图控制器,您希望将视图添加到显示中而不为其创建.xib文件,则可以通过编程方式编辑视图的内容(例如,[self.view addSubview:someImageViewYouCreated] ;)

在主视图控制器(或任何其他要显示其他视图内容的视图控制器中,您只需添加新视图控制器中的视图。例如,如果是视图控制器,则希望添加到显示器的名为SecondViewController,你要写:

SecondViewController *newView = [[SecondViewController alloc] init];
[self.view addSubview:newView.view];

如果要添加淡入淡出动画的视图,可以执行以下操作:

   newView.view.alpha = 0.0;
   [UIView animateWithDuration:0.3f animations:^{
      newView.view.alpha = 1.0;
   }];