2

Am trying to build a simple calculator app using swift. I have created two view controller with the basic and advanced options. Earlier in Obj-C used to do this

[[AViewController alloc] initWithNibName:@"nibName" bundle:nil]

In swift I cannot even import my new view controllers. But still I can declare as var aViewController:AViewController? and use it. But I am stuck at loading nib

I tried with AViewController(nibName: "nibname", bundle: nil), but everything results in compiler error Could not find an overload for __conversion that accepts the supplied arguments

2 Answers 2

3

Try this one,

AViewController(nibName: "nibname", bundle: NSBundle.mainBundle())

This works perfect for me.

Declaration : SWIFT (UINib Class Reference)

init(nibName name: String!,
      bundle bundleOrNil: NSBundle!) -> UINib

Declaration : SWIFT (UIViewController Class Reference)

init(nibName nibName: String!,
      bundle nibBundle: NSBundle!)

The exclamation mark effectively says, “I know that this optional definitely has a value; please use it.” This is known as forced unwrapping of the optional’s value.

This is the reason, we cannot pass "nil" as second parameter i.e bundle

Cheers..!

Sign up to request clarification or add additional context in comments.

Comments

2

Looks like nil was the one causing trouble when I replaced it with NSBundle.mainBundle() it worked.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.