ios - 在 IOS 中显示一个新 View

标签 ios uiviewcontroller

我正在尝试显示包含用户帐户详细信息的 View 。作为 iOS 开发的新手,以下代码应该可以工作(基于文档和搜索)。然而,应用程序崩溃了,我收到一条错误消息,指出无法识别的选择器:

2012-03-13 16:32:25.616 UrbanAgendaApp[4993:207] Displaying profile view
2012-03-13 16:32:25.635 UrbanAgendaApp[4993:207] -[UAFirstViewController presentViewController:animated:completion:]: unrecognized selector sent to instance 0x4b45240
2012-03-13 16:32:25.674 UrbanAgendaApp[4993:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UAFirstViewController presentViewController:animated:completion:]: unrecognized selector sent to instance 0x4b45240'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00fbabe9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x0110f5c2 objc_exception_throw + 47
    2   CoreFoundation                      0x00fbc6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x00f2c366 ___forwarding___ + 966
    4   CoreFoundation                      0x00f2bf22 _CF_forwarding_prep_0 + 50
    5   UrbanAgendaApp                      0x00002308 -[UAFirstViewController showProfileView] + 168
    6   UrbanAgendaApp                      0x00002254 -[UAFirstViewController myUaBtnTouch:] + 52
    7   UIKit                               0x00014a6e -[UIApplication sendAction:to:from:forEvent:] + 119
    8   UIKit                               0x000a31b5 -[UIControl sendAction:to:forEvent:] + 67
    9   UIKit                               0x000a5647 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    10  UIKit                               0x000a41f4 -[UIControl touchesEnded:withEvent:] + 458
    11  UIKit                               0x000390d1 -[UIWindow _sendTouchesForEvent:] + 567
    12  UIKit                               0x0001a37a -[UIApplication sendEvent:] + 447
    13  UIKit                               0x0001f732 _UIApplicationHandleEvent + 7576
    14  GraphicsServices                    0x00cbea36 PurpleEventCallback + 1550
    15  CoreFoundation                      0x00f9c064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    16  CoreFoundation                      0x00efc6f7 __CFRunLoopDoSource1 + 215
    17  CoreFoundation                      0x00ef9983 __CFRunLoopRun + 979
    18  CoreFoundation                      0x00ef9240 CFRunLoopRunSpecific + 208
    19  CoreFoundation                      0x00ef9161 CFRunLoopRunInMode + 97
    20  GraphicsServices                    0x00cbd268 GSEventRunModal + 217
    21  GraphicsServices                    0x00cbd32d GSEventRun + 115
    22  UIKit                               0x0002342e UIApplicationMain + 1160
    23  UrbanAgendaApp                      0x00001c2a main + 170
    24  UrbanAgendaApp                      0x00001b75 start + 53
    25  ???                                 0x00000001 0x0 + 1
)
terminate called after throwing an instance of 'NSException'

发生这种情况的方法是在 FirstViewController 中的一个方法中,该方法作为按钮内触摸事件的结果被调用:

-(void)showProfileView {
    NSLog( @"%@", @"Displaying profile view" ); // ***

    UAProfileView *profileView = [[UAProfileView alloc] init];

    [self presentViewController:profileView animated:TRUE completion:0];
}

UAProfielViewUIViewController 的子类,是与适当的 .xib 文件一起创建的。

所以问题是,如何在我的 iPhone 应用程序中显示这个新 View ?不能使用 Storyboard,因为我必须支持 iOS 4.0。

最佳答案

presentViewController:animated:completion: 的文档指出它仅在 iOS 5.0 及更高版本上受支持。您提到了对 iOS 4.0 的支持。

试试 presentModalViewController:animated: 代替。或者,使用 nagivationController 并执行 pushViewController:animated:

关于ios - 在 IOS 中显示一个新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691706/

相关文章:

iphone - 将另一个 View 附加到同一 View "files owner"

ios - 应用程序在关闭模态视图 Controller 时崩溃

ios - 在具有可变框架的 View 上添加 subview

ios - 如何在不看到第一个的情况下以模态方式推送两个 View Controller

swift - 允许特定的 UIViewController 旋转

ios - 应用程序更新后无处不在的商店位置意外更改

ios - 在 Storyboard中设计 UICollectionViewCell

ios - 如何在CollectionViewController中为gif设置动画。(Objective-C)

ios - UIView 不需要它的 UIViewController 吗?

ios - 对 touchBegan 示例感到困惑