     public func view(fromNibLocatedInMainBundleWithNibName nibName: String) -> View {
         // Obtain bundle
         
-        let bundleToUse = Bundle.main
-        
-        // Obtain result view
-        
-        let resultView = self.view(fromNibWithName: nibName, locatedInBundle: bundleToUse)
-        
-        // Return result
-        
-        return resultView
+        let bundle = Bundle.main
+        
+        // Check whether nib exists in specified bundle
+        
+        let nibExists = bundle.vt_contains(nibWithName: nibName)
+        
+        // Obtain result view
+        
+        let resultView = nibExists ? bundle.vt_load(viewOfType: View.self, fromNibWithName: nibName) : View.init()
+        
+        // Return result
+        
+        return resultView!
     }
     
     /**

        
        // Obtain bundle
        
        let bundleToUse = Bundle.main
        
        // Obtain result view
        
        let resultView = self.view(fromNibWithName: nibName, locatedInBundle: bundleToUse)
        
        // Return result
        
        return resultView
    }
    
    // MARK: Private object methods

    // MARK: Public object methods
    
    /**
     Creates new instance of view.
     
     - Parameters:
         - nibQuery: Nib query.
         - bundleQuery: Bundle query.
     
     - returns: View from specified location.
     */
    public func view(fromNib nibQuery: NibQuery, locatedInBundle bundleQuery: BundleQuery) -> View {
        // Obtain bundle
        
        var nibBundle: Bundle!
        
        switch bundleQuery {
        case .main:
            nibBundle = .main
            break
        case let .byValue(bundle):
            nibBundle = bundle
            break
        case let .byIdentifier(identifier):
            nibBundle = Bundle(identifier: identifier)
            break
        }
        
        let bundleOrMain = nibBundle ?? .main
        
        // Obtain nib name
        
        var nibName: String
        
        switch nibQuery {
        case let .byNibName(name):
            nibName = name
            break
        case .byClassName:
            nibName = View.vt_classNameWithoutNamespace()
            break
        }
        
        // Check whether nib exists in specified bundle
        
        let nibExists = bundleOrMain.vt_contains(nibWithName: nibName)
        
        // Obtain result view
        
        let resultView = nibExists ? bundleOrMain.vt_load(viewOfType: View.self, fromNibWithName: nibName) : View.init()
        
        // Return result
        
        return resultView!
    }
    
    /**
    Loads view from nib with specified name which is located in specified bundle.
    
    - Parameters:
