在swift中以编程方式呈现视图控制器
问题描述:
您好我想将下列目标C代码转换为swift,以便在单击按钮时从一个视图控制器导航到另一个视图控制器。任何帮助,将不胜感激在swift中以编程方式呈现视图控制器
这是从苹果的编程指南采取
- (void)add:(id)sender {
// Create the root view controller for the navigation controller
// The new view controller configures a Cancel and Done button for the
// navigation bar.
RecipeAddViewController *addController = [[RecipeAddViewController alloc]
init];
// Configure the RecipeAddViewController. In this case, it reports any
// changes to a custom delegate object.
addController.delegate = self;
// Create the navigation controller and present it.
UINavigationController *navigationController = [[UINavigationController alloc]
initWithRootViewController:addController];
[self presentViewController:navigationController animated:YES completion: nil];
}
我的代码如下所示,但不知道如何在导航控制器实现,在故事板我mainSectionViewController嵌有导航控制器
func sectionBtnClicked (sender: UIButton!) {
let sectionController = self.storyboard?.instantiateViewControllerWithIdentifier("mainSectionsVC") as mainSectionViewController
let navController = UINavigationcontroler. ///not sure what actually comes here, any help would be appreciated
self.presentViewController(navController, animated: true, completion: nil)
}
答
是否要模态地显示navController?
如果是的,这就是答案
self.presentViewController(navController, animated: true, completion: nil)
“自我” 是将目前navController
并把它像这样当前视图控制器,
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var theButton = UIButton()
// Add the event to button
theButton.addTarget(self, action: "buttonTouchInside:", forControlEvents: .TouchUpInside)
self.view.addSubview(theButton)
}
func buttonTouchInside(sender:UIButton!)
{
// When the button is touched, we're going to present the view controller
// 1. Wrap your view controller within the navigation controller
let navController = UINavigationController(rootViewController: yourViewController)
// 2. Present the navigation controller
self.presentViewController(navController, animated: true, completion: nil)
}
}
但是,
如果你想浏览navigationControlle中的viewController r,你可以用
self.navigationController.pushViewController(viewControllerToPush, animated: true)
答
我做了一个简单的解决方案。这里是...
func actioncall() {
let loginPageView = self.storyboard?.instantiateViewControllerWithIdentifier("LoginPageID") as! ViewController
self.presentViewController(loginPageView, animated: true, completion: nil)
}