私は自分自身に簡単な課題を設定しました。これは多くのアプリで見られますが、非常に困難です。
私の仕事は、ナビゲーション バー、ボタン、およびラベルを備えた 1 つの ViewController を持つことです。ボタンを押すと、UIPopover が新しい ViewController でポップアップし、ユーザーはその popover 内のボタンを押します。彼らがそのボタンを押すと、ViewController はその情報を何かに使用できます。それでおしまい。単純?
したがって、私の親 ViewController は次のように設定されています。
UIViewController popOverViewController = new PopOverViewController ();
PopoverDelegate _popoverDelegate;
public override void ViewDidLoad () {
base.ViewDidLoad ();
BarButtonItemPopover = new UIPopoverController (popOverViewController);
BarButtonItemPopover.PopoverContentSize = new SizeF (320, 320);
_popoverDelegate = new PopoverDelegate();
BarButtonItemPopover.Delegate = _popoverDelegate;
}
public class PopoverDelegate : UIPopoverControllerDelegate {
public PopoverDelegate() { }
public override void DidDismiss (UIPopoverController controller) {
string mike = "Dismissed";
}
public void updateSomething(string someData) {
// When the user clicks in my popOverViewController I want to come
// here and do something. I will then dismiss the popover here.
string mike = someData;
}
}
私の popOverViewController は UIViewController として設定され、その上に btnClickMe と呼ばれるボタンがあり、重要な部分は次のとおりです。
public override void ViewDidLoad () {
base.ViewDidLoad ();
this.btnClickMe.TouchUpInside += (s, e) => {
Console.WriteLine("");
// When I'm clicked I want to send some
// data to the updateSomething("hello world") method
// in the ViewController that crated me! Help!
};
}
私はデバッグし、シミュレーターでポップオーバーを閉じると、デリゲートが起動し、呼び出し元の ViewController の文字列マイクが「破棄」されます。
私が単に理解したり見つけたりできないのは、popoverViewController から updateSomething() メソッドを呼び出し/参照/起動する方法です。私は UIPopover を使用している人々の例を数多く見てきましたが、Objective C の Monotouch でこれを行う例は誰もないようです。これは不可能ということですか? それとも経験者限定ですか?
正直なところ、私は経験豊富な C# 開発者なので、Objective C よりも Monotouch の方が簡単だと思っていましたが、現時点では、Objective C を学ぶ方が簡単だと思います!!
私は非常に混乱/欲求不満になっているので、誰かが私を助けてくれることを願っています.
ありがとう
マイク