返回UINavigationController时未调用viewWillAppear

时间:2016-07-07 20:46:39

标签: ios swift viewwillappear

我调用了一些代码,用于更改导航控制器内viewcontroller的viewWillAppear部分中的语言。 enter image description here

当我点击后退按钮时,即使我在viewWillAppear中有代码,也不会发生语言更改。它切换的唯一时间是当我一直回到原始屏幕然后开始前进时它会改变。有没有办法让viewWillAppear中的函数有效?

这是我的代码,我正在使用语言更改窗格:

df1 = sqlContext.createDataFrame(
        [
            ('1', '2', '3'),
        ],
        ['a', 'b', 'c']
    )

df2 = sqlContext.createDataFrame(
    [
        ('4', '5', '6'),
    ],
    ['a', 'b', 'c']
)

df3 = sqlContext.createDataFrame(
    [
        ('7', '8', '9'),
    ],
    ['a', 'b', 'c']
)

l = [df2, df3]

# expr = reduce(lambda acc, b: acc.unionAll(b), l, '')
for df in l:
    df1 = df1.unionAll(df)

df1.select('*').show()

3 个答案:

答案 0 :(得分:1)

<div> <ul> <li role="button"> <img src="icons/home.png" alt="Home icon" height="24" width="24" />Home</li> <li role="button"> <img src="icons/pan-map.png" alt="Pan Map icon" height="24" width="24" />Pan Map</li> <li role="button"> <img src="icons/initial-map-view.png" alt="Initial Map View icon" height="24" width="24" />Initial View</li> <li role="button"> <img src="icons/zoom-in.png" alt="Zoom In icon" height="24" width="24" />Zoom In</li> <li role="button"> <img src="icons/zoom-out.png" alt="Zoom Out icon" height="24" width="24" />Zoom Out</li> </ul> </div>方法仅添加通知观察者。观察者将在viewWillAppear中删除。这意味着只有在视图可见时发送<{1>}通知时才会调用viewWillDisappear

由于导航行为,一旦视图离开屏幕,更新就会停止。

要确保文本更新,您还需要在setText内拨打LCLLanguageChangeNotification

setText

答案 1 :(得分:0)

实现navigationcontroller委托方法

navigationController:willShowViewController:animated:
navigationController:didShowViewController:animated:

答案 2 :(得分:0)

我创建了解决这个问题的这个小类。 只需将其设置为导航控制器的委托,并在视图控制器中实现简单的一两个方法-当视图将要显示或已通过NavigationController显示时将被调用

Here's the GIST showing the code