Ios 如何以编程方式打开我的UINavigationController?

Ios 如何以编程方式打开我的UINavigationController?,ios,uinavigationcontroller,uistoryboard,Ios,Uinavigationcontroller,Uistoryboard,关于所见即所得/可视化编程,我不喜欢的一件事是,当你需要跳出框框时,你会感到头痛。我现在正处在这样一个点上,在我的iOS学习曲线上 我有一个定制的UICollectionView东西。在创建和编辑点的两个地方,我需要向用户提供一个列表,以启用/禁用列表中的选择/取消选择项。所以我去了故事板,想出了这样的东西: 过去,在下面的教程中,我会控制从一个控件到中间的导航控件显示的链接,我会告诉它是一个模态分段,调整一对方法,并且得到一个连接我的两个箭头。 但在这种情况下,我没有明显的要点来开始行动。我有

关于所见即所得/可视化编程,我不喜欢的一件事是,当你需要跳出框框时,你会感到头痛。我现在正处在这样一个点上,在我的iOS学习曲线上

我有一个定制的UICollectionView东西。在创建和编辑点的两个地方,我需要向用户提供一个列表,以启用/禁用列表中的选择/取消选择项。所以我去了故事板,想出了这样的东西:

过去,在下面的教程中,我会控制从一个控件到中间的导航控件显示的链接,我会告诉它是一个模态分段,调整一对方法,并且得到一个连接我的两个箭头。 但在这种情况下,我没有明显的要点来开始行动。我有一个+按钮。但它需要先做一些其他的事情,如果一切正常,然后以编程方式启动open,并在它返回时以某种方式获得状态通知。对于单个单元格也是一样,它们可能希望配置我的表控制器,然后打开它,并在它关闭时收到通知

所以我在寻找一个如何做到这一点的方法,我应该寻找的关键方法是什么。Apple的文档非常适合参考,但我发现如何从头开始做一些事情很困难。

以编程方式创建UINavigationController,并将所需的视图控制器设置为根视图控制器。下面是一个示例,说明当用户点击加号按钮时,可以在调用的方法中放入什么:

UIViewController *vc = [[UIStoryboard storyboardWithName:@"YourStoryboardName" bundle:nil] instantiateViewControllerWithIdentifier:@"YourViewControllerID"];

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];

[self presentViewController:nc
                   animated:YES completion:nil];
要获取所选项目的状态或信息,可以使用并声明协议。例如:

@protocol YourSampleDelegate <NSObject>

- (void)didSelectItem:(NSObject *)item;

@end
然后,带有加号的视图控制器应实现此协议:

@interface ViewController : UIViewController<YourSampleDelegate>
...
@end

@implementation ViewController

...

#pragma mark - YourSampleDelegate conformance

- (void)didSelectItem:(NSObject *)item;
{
    // Do something with the item.
}

@end

还必须在具有集合视图的视图控制器中创建委托属性,并将具有加号的视图控制器设置为委托。互联网上有大量的例子。我希望这为您指明了正确的方向。

在故事板中创建segue后,您可以随时通过调用

[self-PerformsgueWithIdentifier:@segueID发送者:个人]

其中,segueID是您在interface builder的identity inspector右菜单面板第4个选项卡的标识符字段中为segue设置的字符串

不需要从控件创建segue,您可以直接从一个视图控制器到另一个视图控制器创建segue。我通常在右侧菜单上通过右键单击一个视图控制器对象并拖动到另一个对象来执行此操作。这样,它就充当了一个序列,您可以在任何时候以编程方式启动它

至于在您返回视图控制器时收到通知,除非我误解了您的问题,否则您可以使用:

虚空视图将显示:BOOLanimated 虚空视图显示:BOOLanimated