私はIB 3.xで作成されたXIBを持つソリューションを持っています。 xCode 4でそれらを編集して変更を保存すると、私のXibファイルはすべて乱され、何も表示されません。モノタッチ - xCodeへのトランジション4 - XIBが動作しない
おそらくプロジェクトが正しくアップグレードされませんでしたか? 誰かがアイデアを持っているなら、できるだけ早く私に教えてください - 私はXIBを編集できません!
セットアップ: 1. MTとMDが最新であることを再度確認しました。 2. ios 4.x用にコンパイルする 3.セットアップと解決策があれば、問題は100%再現可能です
これは前後のファイルです。それに続くのは、私が問題を作り出すために使った正確な手順です。
5 KBの制限があるため、ファイル全体を投稿できませんが、新しいXcode 4ファイルには完全なゲッターとセッターがあるということです。
**** ORIGINAL XCodeの3.xのコード:
// ----------------------------- -------------------------------------------------
// <autogenerated>
// This code was generated by a tool.
// Mono Runtime Version: 4.0.30319.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </autogenerated>
// ------------------------------------------------------------------------------
namespace iPhoneSolution
{
// Base type probably should be MonoTouch.UIKit.UIViewController or subclass
[MonoTouch.Foundation.Register("NewTaskView")]
public partial class NewTaskView {
private MonoTouch.UIKit.UIView __mt_view;
private MonoTouch.UIKit.UIButton __mt_cmdAddRecipient;
private MonoTouch.UIKit.UIButton __mt_cmdPickDateTime;
private MonoTouch.UIKit.UITextView __mt_txtDescription;
private MonoTouch.UIKit.UITextField __mt_txtDueDat;
private MonoTouch.UIKit.UITextField __mt_txtName;
private MonoTouch.UIKit.UITextView __mt_txtRecipients;
private MonoTouch.UIKit.UIButton __mt_cmdDoneDescription;
private MonoTouch.UIKit.UIButton __mt_cmdSend;
#pragma warning disable 0169
[MonoTouch.Foundation.Connect("view")]
private MonoTouch.UIKit.UIView view {
get {
this.__mt_view = ((MonoTouch.UIKit.UIView)(this.GetNativeField("view")));
return this.__mt_view;
}
set {
this.__mt_view = value;
this.SetNativeField("view", value);
}
}
[MonoTouch.Foundation.Connect("cmdAddRecipient")]
private MonoTouch.UIKit.UIButton cmdAddRecipient {
get {
this.__mt_cmdAddRecipient = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("cmdAddRecipient")));
return this.__mt_cmdAddRecipient;
}
set {
this.__mt_cmdAddRecipient = value;
this.SetNativeField("cmdAddRecipient", value);
}
}
[MonoTouch.Foundation.Connect("cmdPickDateTime")]
private MonoTouch.UIKit.UIButton cmdPickDateTime {
get {
this.__mt_cmdPickDateTime = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("cmdPickDateTime")));
return this.__mt_cmdPickDateTime;
}
set {
this.__mt_cmdPickDateTime = value;
this.SetNativeField("cmdPickDateTime", value);
}
}
[MonoTouch.Foundation.Connect("txtDescription")]
private MonoTouch.UIKit.UITextView txtDescription {
get {
this.__mt_txtDescription = ((MonoTouch.UIKit.UITextView)(this.GetNativeField("txtDescription")));
return this.__mt_txtDescription;
}
set {
this.__mt_txtDescription = value;
this.SetNativeField("txtDescription", value);
}
}
[MonoTouch.Foundation.Connect("txtDueDat")]
private MonoTouch.UIKit.UITextField txtDueDat {
get {
this.__mt_txtDueDat = ((MonoTouch.UIKit.UITextField)(this.GetNativeField("txtDueDat")));
return this.__mt_txtDueDat;
}
set {
this.__mt_txtDueDat = value;
this.SetNativeField("txtDueDat", value);
}
}
[MonoTouch.Foundation.Connect("txtName")]
private MonoTouch.UIKit.UITextField txtName {
get {
this.__mt_txtName = ((MonoTouch.UIKit.UITextField)(this.GetNativeField("txtName")));
return this.__mt_txtName;
}
set {
this.__mt_txtName = value;
this.SetNativeField("txtName", value);
}
}
[MonoTouch.Foundation.Connect("txtRecipients")]
private MonoTouch.UIKit.UITextView txtRecipients {
get {
this.__mt_txtRecipients = ((MonoTouch.UIKit.UITextView)(this.GetNativeField("txtRecipients")));
return this.__mt_txtRecipients;
}
set {
this.__mt_txtRecipients = value;
this.SetNativeField("txtRecipients", value);
}
}
[MonoTouch.Foundation.Connect("cmdDoneDescription")]
private MonoTouch.UIKit.UIButton cmdDoneDescription {
get {
this.__mt_cmdDoneDescription = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("cmdDoneDescription")));
return this.__mt_cmdDoneDescription;
}
set {
this.__mt_cmdDoneDescription = value;
this.SetNativeField("cmdDoneDescription", value);
}
}
[MonoTouch.Foundation.Connect("cmdSend")]
private MonoTouch.UIKit.UIButton cmdSend {
get {
this.__mt_cmdSend = ((MonoTouch.UIKit.UIButton)(this.GetNativeField("cmdSend")));
return this.__mt_cmdSend;
}
set {
this.__mt_cmdSend = value;
this.SetNativeField("cmdSend", value);
}
}
}
}
のXcode 4でXIBを変更した後:ここ
// WARNING
//
// This file has been generated automatically by MonoDevelop to store outlets and
// actions made in the Xcode designer. If it is removed, they will be lost.
// Manual changes to this file may not be handled correctly.
//
using MonoTouch.Foundation;
namespace iPhoneSolution
{
[Register ("NewTaskView")]
partial class NewTaskView
{
[Outlet]
MonoTouch.UIKit.UIView view { get; set; }
[Outlet]
MonoTouch.UIKit.UIButton cmdAddRecipient { get; set; }
[Outlet]
MonoTouch.UIKit.UIButton cmdPickDateTime { get; set; }
[Outlet]
MonoTouch.UIKit.UITextView txtDescription { get; set; }
[Outlet]
MonoTouch.UIKit.UITextField txtDueDat { get; set; }
[Outlet]
MonoTouch.UIKit.UITextField txtName { get; set; }
[Outlet]
MonoTouch.UIKit.UITextView txtRecipients { get; set; }
[Outlet]
MonoTouch.UIKit.UIButton cmdDoneDescription { get; set; }
[Outlet]
MonoTouch.UIKit.UIButton cmdSend { get; set; }
[Outlet]
MonoTouch.UIKit.UIButton cmdDoSomething { get; set; }
}
}
は、私はそれを再現するために使用される手順は次のとおり
アプリを実行し、検証
- その質問ディスプレイの表示を適切
- ダブル
- [保存]を選択するXcodeで4
- ドラッグを、それを開いて、ビュー上に丸い矩形のボタンをドロップするnibファイルをクリックしてください " xxxx "
- デバッグ| iPhoneSimulatorでアプリを実行します。ビューを表示しています。
- アプリ
- は、二重停止cmdDosomething 閉じる
- という名前アウトレットを作成し、ファイルを保存
- の.hにあるボタンからのXcode 4
- コントロール+ドラッグでそれを開くために同胞をクリックします。
- ビューのViewDidLoadおよびViewDidAppearの先頭にブレークポイントを設定します。
- アプリケーションを再起動します。
- ビューを表示するタブをクリックします。 ViewDidAppearがヒットしました。 ViewDidLoadはヒットしません。表示はではなく、が表示されます。タブバーの上の空白の部分のみが表示されます。
- タブでランダムにクリックします。他のすべてのビューは正常に表示されます。 ViewDidAppearは問題のビューで通常呼び出されます。
私は本当にポインターやアイデアに感謝します。 おかげで百万 WCM
このソリューションは正しいです - Interface Builder 3の制限を回避するために作成された冗長ビューアウトレットを削除するだけですが、単純化された新しいデザイナーコードと競合します。 MonoDevelop 2.8.2はそれを自動的に削除します。詳しい説明は、http://support.xamarin.com/customer/portal/questions/40506-view-outlet-was-not-set-when-using-xcode-4を参照してください。 –