以编程方式将UIBarButtonItem目标设置为以前的视图Controller

时间:2017-07-18 07:22:54

标签: ios swift uibarbuttonitem navigationbar

我有两个UIViewController(我没有使用UINavigationController),它们被命名为ParentViewController和ChildViewController。

但是,我无法使用故事板为子视图控制器添加UINavigationBar,因此我以编程方式将UINavigationBar与UIBarButtonItem一起添加到其中。

我已成功将导航栏和小节按钮项添加到子视图控制器。我得到的问题是我无法设置UIBarButtonItem的目标,因此当按下它时,将显示父视图控制器。

这是我使用的代码,但我不确定将它们放在哪里

<CheckBox android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android" />
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:title="Filtered"/>
        <item android:title="SortedBy">
        <menu>
            <item
                app:actionLayout="@layout/widgets_checkboxes"
                android:title="Low To High"/>
            <item
                app:actionLayout="@layout/widgets_checkboxes"
                android:title="High To Low"/>
        </menu>
    </item>
</menu>

然后我将navigationBar添加到子视图控制器viewDidLoad()

中的子视图

为了您的信息,我没有在父视图控制器中执行任何操作。它只是我在故事板上创建的segue,用于在按下时显示子视图控制器。

请帮助我...

1 个答案:

答案 0 :(得分:0)

我已经找到了解决方案。我没有使用self.navigationController来显示前一个控制器,而是使用了general present命令来显示视图控制器。

这是我的代码,它解决了我所有的问题。

let vc = self.storyboard?.instantiateViewController(withIdentifier: "ParentViewController")
self.present(vc!, animated:true, completion:nil)

我希望它会帮助那些面临像我这样的问题的人。