Moh*_*din 66 uiviewcontroller uinavigationcontroller ios swift xcode6
从第一个视图控制器导航到第二个视图控制器时出现错误信息.我的编码就像这个
let vc = LoginViewController(nibName: "LoginViewController", bundle: nil)
self.navigationController?.pushViewController(vc, animated: true)
Run Code Online (Sandbox Code Playgroud)
问题是我总是收到这种错误信息
2014-12-09 16:51:08.219 XXXXX[1351:60b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/FDC7AA0A-4F61-47E7-955B-EE559ECC06A2/XXXXX.app> (loaded)' with name 'LoginViewController''
*** First throw call stack:
(0x2efcaf0b 0x39761ce7 0x2efcae4d 0x31b693f9 0x31ac1eaf 0x3191e365 0x317fe895 0x318a930d 0x318a9223 0x318a8801 0x318a8529 0x318a8299 0x318a8231 0x317fa305 0x3147631b 0x31471b3f 0x314719d1 0x314713e5 0x314711f7 0x3146af1d 0x2ef96039 0x2ef939c7 0x2ef93d13 0x2eefe769 0x2eefe54b 0x33e6b6d3 0x3185d891 0x4ccc8 0x4cd04 0x39c5fab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Run Code Online (Sandbox Code Playgroud)
Moh*_*din 120
我已经找到了答案
斯威夫特4
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "nextView") as! NextViewController
self.present(nextViewController, animated:true, completion:nil)
Run Code Online (Sandbox Code Playgroud)
斯威夫特3
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("nextView") as NextViewController
self.presentViewController(nextViewController, animated:true, completion:nil)
Run Code Online (Sandbox Code Playgroud)
小智 43
试试这个吧.这里"LoginViewController"是storyboard中指定的storyboardID.
见下文
let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("LoginViewController") as LoginViewController
self.navigationController?.pushViewController(secondViewController, animated: true)
Run Code Online (Sandbox Code Playgroud)
Cri*_*ora 39
XCODE 8.2和SWIFT 3.0
目前存在 UIViewController
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
self.present(loginVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
推动存在 UIViewController
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
self.navigationController?.pushViewController(loginVC, animated: true)
Run Code Online (Sandbox Code Playgroud)
请记住,您可以按照UIViewController以下步骤放置标识符:
Main.storyboardUIViewControllerUIViewControllerjai*_*jan 12
如果要导航到以编程方式创建的Controller,请执行以下操作:
let newViewController = NewViewController()
self.navigationController?.pushViewController(newViewController, animated: true)
Run Code Online (Sandbox Code Playgroud)
如果要使用标识符"newViewController"导航到StoryBoard上的Controller,请执行以下操作:
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "newViewController") as! NewViewController
self.present(newViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
A.G*_*A.G 10
见我的.
func actioncall () {
let loginPageView = self.storyboard?.instantiateViewControllerWithIdentifier("LoginPageID") as! ViewController
self.navigationController?.pushViewController(loginPageView, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
如果使用呈现样式,则可能会丢失具有预设pushnavigation的页面导航栏.
Swift3:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController("LoginViewController) as UIViewController
self.navigationController?.pushViewController(vc, animated: true)
Run Code Online (Sandbox Code Playgroud)
试试吧.你只是把笔尖与故事板表示混淆了.
您可以使用以下代码以编程方式从一个场景移动到另一个场景:
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let objSomeViewController = storyBoard.instantiateViewControllerWithIdentifier(“storyboardID”) as! SomeViewController
// If you want to push to new ViewController then use this
self.navigationController?.pushViewController(objSomeViewController, animated: true)
// ---- OR ----
// If you want to present the new ViewController then use this
self.presentViewController(objSomeViewController, animated:true, completion:nil)
Run Code Online (Sandbox Code Playgroud)
这里storyBoardID是您使用Interface Builder设置为场景的值.如下所示:
编程上根据不同情况有不同的方法
在此处加载 storyenter 代码 nib 文件
let yourVc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "YourViewController") as! YourViewController;
self.present(yourVc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)从xib加载
let yourVc = YourViewController.init(nibName: "YourViewController", bundle: nil)
self.present(yourVc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)浏览 Segue
self.performSegue(withIdentifier: "your UIView", sender: self)
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
184352 次 |
| 最近记录: |