尝试在Visual Studio 2013 Premium中运行Xamarin iOS项目时出现问题。这意味着LoginView.xib
不在项目的包中。
我的Mac上的Xamarin Studio对此没有任何问题。
Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Could not load NIB in bundle: 'NSBundle </Users/gtas/Library/Developer/CoreSimulator/Devices/215AE19B-D168-47F2-82D8-D5B40CDB46DE/data/Containers/Bundle/Application/33D2A0A9-F775-4B46-9041-E26EB53AF417/OnLeaveiOS.app> (loaded)' with name 'LoginView'
我使用以下代码将xib加载到支持的类文件中。
public LoginView(IntPtr h): base(h)
{
SetupView ();
}
public LoginView ()
{
SetupView ();
}
public LoginView (LoginRegisterViewModel vm)
{
_vm = vm;
SetupView ();
}
private void SetupView()
{
view = LoadViewFromXib ();
view.BackgroundColor = UIColor.Clear;
AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;
Bounds = view.Bounds;
_intrinsicContentSize = Bounds.Size;
TranslatesAutoresizingMaskIntoConstraints = false;
SetupOutlets ();
this.AddSubview (view);
}
private UIView LoadViewFromXib()
{
NSBundle bundle = NSBundle.FromClass (this.Class);
UINib nib = UINib.FromName ("LoginView", bundle);
return (UIView)nib.Instantiate (this, null)[0];
}
在编写原生iOS应用程序时,我使用这种技术分离我的UI组件,一切都很好。另外正如我所说,Mac Xamarin Studio似乎并不担心它。
我使用了Storyboard文件和XIB组件的组合。
答案 0 :(得分:0)
来自Xamarin论坛的回答。 http://forums.xamarin.com/discussion/comment/111300#Comment_111300
这很有可能 https://bugzilla.xamarin.com/show_bug.cgi?id=27990。那个bug已经存在了 修复了最新的XamarinVS alpha版本(3.9.530)。另见 XamarinVS 3.9.530 alpha版本线程: http://forums.xamarin.com/discussion/36241/alpha-release-xamarinvs-3-9-530-watchkit-bug-fixes/p1
如果您想暂时降级,直到3.9.530升级为 稳定,见3.9.483稳定释放线程: http://forums.xamarin.com/discussion/35785/stable-release-xamarinvs-3-9-483-watchkit/p1