[MonoTouch] Cannot inherit from UIAlertView
Sebastien Pouliot
sebastien at xamarin.com
Thu Oct 20 19:22:41 EDT 2011
Hello Andrew,
This was asked on stackoverflow [1] recently. The workaround is to
override only the default constructor and use the properties to set
all values.
Not sure (yet) about the root cause, it's on my TODO but I got other
bugs (without workarounds) to go thru before that.
Feel free to open a bug report (less chance that I forget about it ;-)
Sebastien
[1] http://stackoverflow.com/questions/7692522/subclassed-uialertview-not-shown
On Thu, Oct 20, 2011 at 5:07 PM, Andrew Young <andrewdyoung at gmail.com> wrote:
> App crashes when I try to inherit from UIAlertView. See stack trace and
> sample code below. MonoTouch 5.0.
> Any ideas? I have a sample app that shows this for anyone interested.
> public class ViewController : UIViewController
> {
> private DateTimePickerView _pickerView;
> public ViewController ()
> {
> }
> public override void ViewDidLoad ()
> {
> base.ViewDidLoad ();
> new NotReachableAlertView ().Show ();
> }
> }
> public class NotReachableAlertView : UIAlertView
> {
> public NotReachableAlertView() : base("Title", "Message", null, "Cancel")
> {
> }
> }
> Unhandled Exception: MonoTouch.Foundation.MonoTouchException: Objective-C
> exception thrown. Name: NSInternalInconsistencyException Reason: Requesting
> the window of a view (<PickerViewCrash.NotReachableAlertView: 0x79a700;
> baseClass = UIAlertView; frame = (0 0; 0 0); transform = [0, 0, 0, 0, 0, 0];
> alpha = 0; opaque = NO; layer = (null)>) with a nil layer. This view
> probably hasn't received initWithFrame: or initWithCoder:.
> at MonoTouch.UIKit.UIAlertView.Show () [0x00000] in <filename unknown>:0
> at PickerViewCrash.ViewController.ViewDidLoad () [0x00006] in
> /Users/Andrew/Projects/PickerViewCrash/ViewController.cs:20
> at MonoTouch.UIKit.UIWindow.MakeKeyAndVisible () [0x00000] in <filename
> unknown>:0
> at PickerViewCrash.AppDelegate.FinishedLaunching
> (MonoTouch.UIKit.UIApplication app, MonoTouch.Foundation.NSDictionary
> options) [0x00031] in
> /Users/Andrew/Projects/PickerViewCrash/AppDelegate.cs:32
> at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String
> principalClassName, System.String delegateClassName) [0x00000] in <filename
> unknown>:0
> at PickerViewCrash.Application.Main (System.String[] args) [0x00000] in
> /Users/Andrew/Projects/PickerViewCrash/Main.cs:16
> [ERROR] FATAL UNHANDLED EXCEPTION: MonoTouch.Foundation.MonoTouchException:
> Objective-C exception thrown. Name: NSInternalInconsistencyException
> Reason: Requesting the window of a view
> (<PickerViewCrash.NotReachableAlertView: 0x79a700; baseClass = UIAlertView;
> frame = (0 0; 0 0); transform = [0, 0, 0, 0, 0, 0]; alpha = 0; opaque = NO;
> layer = (null)>) with a nil layer. This view probably hasn't received
> initWithFrame: or initWithCoder:.
> at MonoTouch.UIKit.UIAlertView.Show () [0x00000] in <filename unknown>:0
> at PickerViewCrash.ViewController.ViewDidLoad () [0x00006] in
> /Users/Andrew/Projects/PickerViewCrash/ViewController.cs:20
> at MonoTouch.UIKit.UIWindow.MakeKeyAndVisible () [0x00000] in <filename
> unknown>:0
> at PickerViewCrash.AppDelegate.FinishedLaunching
> (MonoTouch.UIKit.UIApplication app, MonoTouch.Foundation.NSDictionary
> options) [0x00031] in
> /Users/Andrew/Projects/PickerViewCrash/AppDelegate.cs:32
> at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String
> principalClassName, System.String delegateClassName) [0x00000] in <filename
> unknown>:0
> at PickerViewCrash.Application.Main (System.String[] args) [0x00000] in
> /Users/Andrew/Projects/PickerViewCrash/Main.cs:16
> Terminating runtime due to unhandled exception
>
> _______________________________________________
> MonoTouch mailing list
> MonoTouch at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/monotouch
>
>
More information about the MonoTouch
mailing list