Objective c 如何在iPad的单视图应用程序中以编程方式正确实例化和显示视图

Objective c 如何在iPad的单视图应用程序中以编程方式正确实例化和显示视图,objective-c,xcode,cocoa,Objective C,Xcode,Cocoa,我想知道如何以编程方式正确显示视图。我将尝试解释我到目前为止所做的事情: 该应用程序有一个带有两个视图控制器的情节提要。其中一个具有标识符:“detailview”。当我单击初始视图控制器上的按钮时,我希望显示带有标识符“detailview”的视图控制器。目前我正在使用以下代码: TI4ViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"detailview"]; UIWindow* w

我想知道如何以编程方式正确显示视图。我将尝试解释我到目前为止所做的事情:

该应用程序有一个带有两个视图控制器的情节提要。其中一个具有标识符:“detailview”。当我单击初始视图控制器上的按钮时,我希望显示带有标识符“detailview”的视图控制器。目前我正在使用以下代码:

TI4ViewController* vc = [self.storyboard instantiateViewControllerWithIdentifier:@"detailview"];
UIWindow* window = [UIApplication sharedApplication].keyWindow;                     
[window addSubview:vc.view];
这可以很好地显示视图“detailview”。但是,当我在detailview控制器上添加一个按钮并在TI4ViewController(连接到“detailview”的视图控制器)中添加一个触地事件时,我在单击此按钮时遇到了一个异常

我得到以下异常:

由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:”-[\uu NSCFType TestDown:]: 已将无法识别的选择器发送到实例0x6e0f670'

我使用的是Xcode版本4.3.2(4E2002)


我不确定我做错了什么。我想ViewController已经发布了,但我不确定

您可以使用segue,而不是添加另一个视图。您可以找到一个已解决问题的示例。我应该添加TI4ViewController作为初始视图控制器的属性。现在,当您离开该功能时,它将从内存中删除。

您是如何在detailView中连接该按钮的?它调用什么方法?只需从按钮OnTouchDown事件/操作拖动到TI4ViewController.h,您希望按钮执行什么操作?通常你应该有一个以iAction开始的方法,并将按钮链接到它,而不是viewController本身。我已经将按钮链接到了一个以iAction开始的空方法。它是一个空按钮,但在调用它之前已引发异常。我查过了。因此,我认为视图控制器已释放。很抱歉,无法使用seque。我想以编程方式显示视图。这样做的原因是我想在一个视图中同时显示垂直选项卡栏中的视图。您仍然可以通过编程方式使用segue的。如果这是问题的答案,请将其标记为正确。您只能在两天后将自己的答案标记为正确。